Skip to content
  1. Dec 30, 2009
  2. Dec 29, 2009
    • Zhu Yi's avatar
      iwmc3200wifi: fix array out-of-boundary access · 6c853da3
      Zhu Yi authored
      
      
      Allocate priv->rx_packets[IWM_RX_ID_HASH + 1] because the max array
      index is IWM_RX_ID_HASH according to IWM_RX_ID_GET_HASH().
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarZhu Yi <yi.zhu@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6c853da3
    • Roel Kluin's avatar
      wl1251: timeout one too soon in wl1251_boot_run_firmware() · e8a4a6df
      Roel Kluin authored
      
      
      `loop' reaches INIT_LOOP + 1 after the loop. so if ACX_INTR_INIT_COMPLETE
      occurs in the last iteration the write occurs but also the error out as if a
      timeout occurred. This is probably very unlikely to ever occur.
      
      Signed-off-by: default avatarRoel Kluin <roel.kluin@gmail.com>
      Acked-by: default avatarKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      e8a4a6df
    • Luis R. Rodriguez's avatar
      mac80211: fix propagation of failed hardware reconfigurations · 24feda00
      Luis R. Rodriguez authored
      
      
      mac80211 does not propagate failed hardware reconfiguration
      requests. For suspend and resume this is important due to all
      the possible issues that can come out of the suspend <-> resume
      cycle. Not propagating the error means cfg80211 will assume
      the resume for the device went through fine and mac80211 will
      continue on trying to poke at the hardware, enable timers,
      queue work, and so on for a device which is completley
      unfunctional.
      
      The least we can do is to propagate device start issues and
      warn when this occurs upon resume. A side effect of this patch
      is we also now propagate the start errors upon harware
      reconfigurations (non-suspend), but this should also be desirable
      anyway, there is not point in continuing to reconfigure a
      device if mac80211 was unable to start the device.
      
      For further details refer to the thread:
      
      http://marc.info/?t=126151038700001&r=1&w=2
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      24feda00
    • Luis R. Rodriguez's avatar
      mac80211: fix race with suspend and dynamic_ps_disable_work · b98c06b6
      Luis R. Rodriguez authored
      
      
      When mac80211 suspends it calls a driver's suspend callback
      as a last step and after that the driver assumes no calls will
      be made to it until we resume and its start callback is kicked.
      If such calls are made, however, suspend can end up throwing
      hardware in an unexpected state and making the device unusable
      upon resume.
      
      Fix this by preventing mac80211 to schedule dynamic_ps_disable_work
      by checking for when mac80211 starts to suspend and starts
      quiescing. Frames should be allowed to go through though as
      that is part of the quiescing steps and we do not flush the
      mac80211 workqueue since it was already done towards the
      beginning of suspend cycle.
      
      The other mac80211 issue will be hanled in the next patch.
      
      For further details see refer to the thread:
      
      http://marc.info/?t=126144866100001&r=1&w=2
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      b98c06b6
    • Felix Fietkau's avatar
      ath9k: fix missed error codes in the tx status check · 5b479a07
      Felix Fietkau authored
      My previous change added in:
      
       commit 815833e7
      
      
          ath9k: fix tx status reporting
      
      was not checking all possible tx error conditions. This could possibly
      lead to throughput issues due to slow rate control adaption or missed
      retransmissions of failed A-MPDU frames.
      
      This patch adds a mask for all possible error conditions and uses it
      in the xmit ok check.
      
      Cc: stable@kernel.org
      Reported-by: default avatarBjörn Smedman <bjorn.smedman@venatech.se>
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5b479a07
    • Luis R. Rodriguez's avatar
      ath9k: wake hardware during AMPDU TX actions · 8b685ba9
      Luis R. Rodriguez authored
      
      
      AMDPDU actions poke hardware for TX operation, as such
      we want to turn hardware on for these actions. AMDPU RX operations
      do not require hardware on as nothing is done in hardware for
      those actions. Without this we cannot guarantee hardware has
      been programmed correctly for each AMPDU TX action.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      8b685ba9
    • Luis R. Rodriguez's avatar
      ath9k: wake hardware for interface IBSS/AP/Mesh removal · 5f70a88f
      Luis R. Rodriguez authored
      
      
      When we remove a IBSS/AP/Mesh interface we stop DMA
      but to do this we should ensure hardware is on. Awaken
      the device prior to these calls. This should ensure
      DMA is stopped upon suspend and plain device removal.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5f70a88f
    • Sujith's avatar
      ath9k: fix suspend by waking device prior to stop · 3867cf6a
      Sujith authored
      
      
      Ensure the device is awake prior to trying to tell hardware
      to stop it. Impact of not doing this is we can likely leave
      the device in an undefined state likely causing issues with
      suspend and resume. This patch ensures harware is where it
      should be prior to suspend.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarSujith <Sujith.Manoharan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3867cf6a
    • Johannes Berg's avatar
      cfg80211: fix error path in cfg80211_wext_siwscan · 65486c8b
      Johannes Berg authored
      
      
      If there's an invalid channel or SSID, the code leaks
      the scan request. Always free the scan request, unless
      it was successfully given to the driver.
      
      Reported-by: default avatarDan Carpenter <error27@gmail.com>
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Acked-by: default avatarDan Carpenter <error27@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      65486c8b
    • Dan Carpenter's avatar
      wl1271_cmd.c: cleanup char => u8 · befabac2
      Dan Carpenter authored
      
      
      This is just a clean up and doesn't make a functional difference.  It keeps the
      lint checkers happy.
      
      Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
      Reviewed-by: default avatarKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      befabac2
    • Tobias Klauser's avatar
      iwlwifi: Storage class should be before const qualifier · 79496738
      Tobias Klauser authored
      
      
      The C99 specification states in section 6.11.5:
      
      The placement of a storage-class specifier other than at the beginning
      of the declaration specifiers in a declaration is an obsolescent
      feature.
      
      Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
      Acked-by: default avatarZhu Yi <yi.zhu@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      79496738
    • Tobias Klauser's avatar
      ath9k: Storage class should be before const qualifier · 83bd11a0
      Tobias Klauser authored
      
      
      The C99 specification states in section 6.11.5:
      
      The placement of a storage-class specifier other than at the beginning
      of the declaration specifiers in a declaration is an obsolescent
      feature.
      
      Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      83bd11a0
    • Johannes Berg's avatar
      cfg80211: fix race between deauth and assoc response · 3bdb2d48
      Johannes Berg authored
      
      
      Joseph Nahmias reported, in http://bugs.debian.org/562016,
      that he was getting the following warning (with some log
      around the issue):
      
        ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1)
        ath0: direct probe responded
        ath0: authenticate with AP 00:11:95:77:e0:b0 (try 1)
        ath0: authenticated
        ath0: associate with AP 00:11:95:77:e0:b0 (try 1)
        ath0: deauthenticating from 00:11:95:77:e0:b0 by local choice (reason=3)
        ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1)
        ath0: RX AssocResp from 00:11:95:77:e0:b0 (capab=0x421 status=0 aid=2)
        ath0: associated
        ------------[ cut here ]------------
        WARNING: at net/wireless/mlme.c:97 cfg80211_send_rx_assoc+0x14d/0x152 [cfg80211]()
        Hardware name: 7658CTO
        ...
        Pid: 761, comm: phy0 Not tainted 2.6.32-trunk-686 #1
        Call Trace:
         [<c1030a5d>] ? warn_slowpath_common+0x5e/0x8a
         [<c1030a93>] ? warn_slowpath_null+0xa/0xc
         [<f86cafc7>] ? cfg80211_send_rx_assoc+0x14d/0x152
        ...
        ath0: link becomes ready
        ath0: deauthenticating from 00:11:95:77:e0:b0 by local choice (reason=3)
        ath0: no IPv6 routers present
        ath0: link is not ready
        ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1)
        ath0: direct probe responded
        ath0: authenticate with AP 00:11:95:77:e0:b0 (try 1)
        ath0: authenticated
        ath0: associate with AP 00:11:95:77:e0:b0 (try 1)
        ath0: RX ReassocResp from 00:11:95:77:e0:b0 (capab=0x421 status=0 aid=2)
        ath0: associated
      
      It is not clear to me how the first "direct probe" here
      happens, but this seems to be a race condition, if the
      user requests to deauth after requesting assoc, but before
      the assoc response is received. In that case, it may
      happen that mac80211 tries to report the assoc success to
      cfg80211, but gets blocked on the wdev lock that is held
      because the user is requesting the deauth.
      
      The result is that we run into a warning. This is mostly
      harmless, but maybe cause an unexpected event to be sent
      to userspace; we'd send an assoc success event although
      userspace was no longer expecting that.
      
      To fix this, remove the warning and check whether the
      race happened and in that case abort processing.
      
      Reported-by: default avatarJoseph Nahmias <joe@nahmias.net>
      Cc: stable@kernel.org
      Cc: 562016-quiet@bugs.debian.org
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3bdb2d48
    • Johannes Berg's avatar
      wireless: remove remaining qual code · 671adc93
      Johannes Berg authored
      
      
      This removes the remaining users of the rx status
      'qual' field and the field itself.
      
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      671adc93
    • Gertjan van Wingerde's avatar
      rt2x00: Add USB ID for Linksys WUSB 600N rev 2. · 5e312589
      Gertjan van Wingerde authored
      
      
      This is a rt2870 based device.
      
      Signed-off-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Acked-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5e312589
    • Bob Copeland's avatar
      ath5k: fix SWI calibration interrupt storm · 242ab7ad
      Bob Copeland authored
      
      
      The calibration period is now invoked by triggering a software
      interrupt from within the ISR by ath5k_hw_calibration_poll()
      instead of via a timer.
      
      However, the calibration interval isn't initialized before
      interrupts are enabled, so we can have a situation where an
      interrupt occurs before the interval is assigned, so the
      interval is actually negative.  As a result, the ISR will
      arm a software interrupt to schedule the tasklet, and then
      rearm it when the SWI is processed, and so on, leading to a
      softlockup at modprobe time.
      
      Move the initialization order around so the calibration interval
      is set before interrupts are active.  Another possible fix
      is to schedule the tasklet directly from the poll routine,
      but I think there are additional plans for the SWI.
      
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      242ab7ad
    • Felix Fietkau's avatar
      mac80211: fix ibss join with fixed-bssid · 2e10d330
      Felix Fietkau authored
      
      
      When fixed bssid is requested when joining an ibss network, incoming
      beacons that match the configured bssid cause mac80211 to create new
      sta entries, even before the ibss interface is in joined state.
      When that happens, it fails to bring up the interface entirely, because
      it checks for existing sta entries before joining.
      This patch fixes this bug by refusing to create sta info entries before
      the interface is fully operational.
      
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      2e10d330
    • Samuel Ortiz's avatar
      libertas: Remove carrier signaling from the scan code · 659c8e52
      Samuel Ortiz authored
      
      
      There is no reason to signal a carrier off when doing a 802.11 scan.
      
      Cc: Holger Schurig <holgerschurig@gmail.com>
      Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
      Acked-by: default avatarDan Williams <dcbw@redhat.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      659c8e52
    • Andrey Borzenkov's avatar
      orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled · 5b069150
      Andrey Borzenkov authored
      
      
      orinoco_set_key is called from two places both with interrupts disabled
      (under orinoco_lock). Use GFP_ATOMIC instead of GFP_KERNEL. Fixes following
      warning:
      
      [   77.254109] WARNING: at /home/bor/src/linux-git/kernel/lockdep.c:2465 lockdep_trace_alloc+0x9a/0xa0()
      [   77.254109] Hardware name: PORTEGE 4000
      [   77.254109] Modules linked in: af_packet irnet ppp_generic slhc ircomm_tty ircomm binfmt_misc dm_mirror dm_region_hash dm_log dm_round_robin dm_multipath dm_mod loop nvram toshiba cryptomgr aead pcompress crypto_blkcipher michael_mic crypto_hash crypto_algapi orinoco_cs orinoco cfg80211 smsc_ircc2 pcmcia irda toshiba_acpi yenta_socket video i2c_ali1535 backlight rsrc_nonstatic ali_agp pcmcia_core psmouse output crc_ccitt i2c_core alim1535_wdt rfkill sg evdev ohci_hcd agpgart usbcore pata_ali libata reiserfs [last unloaded: scsi_wait_scan]
      [   77.254109] Pid: 2296, comm: wpa_supplicant Not tainted 2.6.32-1avb #1
      [   77.254109] Call Trace:
      [   77.254109]  [<c011f0ad>] warn_slowpath_common+0x6d/0xa0
      [   77.254109]  [<c014206a>] ? lockdep_trace_alloc+0x9a/0xa0
      [   77.254109]  [<c014206a>] ? lockdep_trace_alloc+0x9a/0xa0
      [   77.254109]  [<c011f0f5>] warn_slowpath_null+0x15/0x20
      [   77.254109]  [<c014206a>] lockdep_trace_alloc+0x9a/0xa0
      [   77.254109]  [<c018d296>] __kmalloc+0x36/0x130
      [   77.254109]  [<dffcb6a8>] ? orinoco_set_key+0x48/0x1c0 [orinoco]
      [   77.254109]  [<dffcb6a8>] orinoco_set_key+0x48/0x1c0 [orinoco]
      [   77.254109]  [<dffcb9fc>] orinoco_ioctl_set_encodeext+0x1dc/0x2d0 [orinoco]
      [   77.254109]  [<c035b117>] ioctl_standard_call+0x207/0x3b0
      [   77.254109]  [<dffcb820>] ? orinoco_ioctl_set_encodeext+0x0/0x2d0 [orinoco]
      [   77.254109]  [<c0307f1f>] ? rtnl_lock+0xf/0x20
      [   77.254109]  [<c0307f1f>] ? rtnl_lock+0xf/0x20
      [   77.254109]  [<c02fb115>] ? __dev_get_by_name+0x85/0xb0
      [   77.254109]  [<c035b616>] wext_handle_ioctl+0x176/0x200
      [   77.254109]  [<dffcb820>] ? orinoco_ioctl_set_encodeext+0x0/0x2d0 [orinoco]
      [   77.254109]  [<c030020f>] dev_ioctl+0x6af/0x730
      [   77.254109]  [<c02eec65>] ? move_addr_to_kernel+0x55/0x60
      [   77.254109]  [<c02eed59>] ? sys_sendto+0xe9/0x130
      [   77.254109]  [<c02ed77e>] sock_ioctl+0x7e/0x250
      [   77.254109]  [<c02ed700>] ? sock_ioctl+0x0/0x250
      [   77.254109]  [<c019cf4c>] vfs_ioctl+0x1c/0x70
      [   77.254109]  [<c019d1fa>] do_vfs_ioctl+0x6a/0x590
      [   77.254109]  [<c0178e50>] ? might_fault+0x90/0xa0
      [   77.254109]  [<c0178e0a>] ? might_fault+0x4a/0xa0
      [   77.254109]  [<c02ef90e>] ? sys_socketcall+0x17e/0x280
      [   77.254109]  [<c019d759>] sys_ioctl+0x39/0x60
      [   77.254109]  [<c0102e3b>] sysenter_do_call+0x12/0x32
      [   77.254109] ---[ end trace 95ef563548d21efd ]---
      
      Signed-off-by: default avatarAndrey Borzenkov <arvidjaar@mail.ru>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5b069150
  3. Dec 27, 2009
  4. Dec 26, 2009
  5. Dec 24, 2009