linux/drivers/net/wireless/ath/ath9k
Luis R. Rodriguez 52b8ac9249 ath9k: fix regression on beacon loss after bgscan
When we return to the home channel we were never reseting our beacon
timers, this was casued by the fact that the scanning flag was still
on even after we returned to our home channel. There are also other
reasons why we would get a reset and if we are not off channel
we always need to resynch our beacon timers, because a reset will
clear them.

This bug is a regression introduced on 2.6.36. The order of the
changes are as follows:

5ee08656 - Sat Jul 31 - ath9k: prevent calibration during off-channel activity
a0daa0e7 - Tue Jul 27 - Revert "mac80211: fix sw scan bracketing"
543708be - Fri Jun 18 - mac80211: fix sw scan bracketing

mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \
        --contains 5ee0865615
v2.6.36-rc1~43^2~34^2~22

mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \
        --contains a0daa0e759
v2.6.36-rc1~571^2~64^2~13

mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \
        --contains 543708be32
v2.6.36-rc1~571^2~107^2~187

So 5ee08656 would have worked if a0daa0e7 was not committed but
it was so this means 5ee08656 was broken since it assumed that
when we were in the channel change routine the scan flag would
be lifted. As it turns out the scan flag will be set when we
are already on the home channel.

For more details refer to:

http://code.google.com/p/chromium-os/issues/detail?id=5715

These issues will need to be considered for our solution on
reshifting the scan complete callback location on mac80211 on
current development kernel work.

This patch has stable fixes which apply down to [2.6.36+]

Cc: stable@kernel.org
Cc: Paul Stewart <pstew@google.com>
Cc: Amod Bodas <amod.bodas@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-09-16 15:46:11 -04:00
..
ahb.c
ani.c drivers/net/wireless/ath/ath9k: use ARRAY_SIZE macro in ani.c 2010-09-14 16:05:57 -04:00
ani.h
ar5008_initvals.h
ar5008_phy.c
ar9001_initvals.h
ar9002_calib.c ath9k_hw: fix a noise floor calibration related race condition 2010-08-04 15:27:37 -04:00
ar9002_hw.c ath9k_hw: Restore ANI registers to default during partial reset for AR9271 2010-09-07 13:54:34 -04:00
ar9002_initvals.h
ar9002_mac.c
ar9002_phy.c ath9k_hw: Add functions to get/set antenna diversity configuration 2010-09-07 13:54:33 -04:00
ar9002_phy.h ath9k_hw: Add functions to get/set antenna diversity configuration 2010-09-07 13:54:33 -04:00
ar9003_2p0_initvals.h
ar9003_2p2_initvals.h
ar9003_calib.c ath9k_hw: clean up per-channel calibration data 2010-08-04 15:27:37 -04:00
ar9003_eeprom.c ath9k_hw: remove warning in ath9k_hw_def_get_num_ant_config 2010-09-16 15:46:05 -04:00
ar9003_eeprom.h
ar9003_hw.c
ar9003_mac.c ath9k_hw: handle rx key miss 2010-09-14 16:14:27 -04:00
ar9003_mac.h
ar9003_paprd.c ath9k_hw: clean up per-channel calibration data 2010-08-04 15:27:37 -04:00
ar9003_phy.c ath9k_hw: fix analog shift register writes on AR9003 2010-08-04 15:27:37 -04:00
ar9003_phy.h
ath9k.h ath9k: fix BSSID mask calculation 2010-09-14 16:14:26 -04:00
beacon.c ath9k: use AP beacon miss as a trigger for fast recalibration 2010-08-16 15:26:39 -04:00
btcoex.c ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
btcoex.h
calib.c ath9k: use AP beacon miss as a trigger for fast recalibration 2010-08-16 15:26:39 -04:00
calib.h ath9k: use AP beacon miss as a trigger for fast recalibration 2010-08-16 15:26:39 -04:00
common.c ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
common.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
debug.c ath9k: Print rxfilter in debugfs. 2010-09-16 15:45:50 -04:00
debug.h
eeprom.c
eeprom.h ath9k_hw: remove warning in ath9k_hw_def_get_num_ant_config 2010-09-16 15:46:05 -04:00
eeprom_4k.c ath9k_hw: remove warning in ath9k_hw_def_get_num_ant_config 2010-09-16 15:46:05 -04:00
eeprom_9287.c ath9k_hw: remove warning in ath9k_hw_def_get_num_ant_config 2010-09-16 15:46:05 -04:00
eeprom_def.c ath9k_hw: remove warning in ath9k_hw_def_get_num_ant_config 2010-09-16 15:46:05 -04:00
gpio.c ath9k_common: Move bt_stomp to common for sharing with ath9k_htc. 2010-08-24 16:32:05 -04:00
hif_usb.c ath9k_htc: Fix register read through bulk pipe 2010-09-16 15:46:08 -04:00
hif_usb.h
htc.h ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
htc_drv_beacon.c
htc_drv_gpio.c ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
htc_drv_init.c ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
htc_drv_main.c ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
htc_drv_txrx.c ath9k_hw: remove useless hw capability flags 2010-09-14 16:14:27 -04:00
htc_hst.c ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
htc_hst.h ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
hw-ops.h
hw.c ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
hw.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
init.c ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
Kconfig
mac.c ath9k_hw: handle rx key miss 2010-09-14 16:14:27 -04:00
mac.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
main.c ath9k: fix regression on beacon loss after bgscan 2010-09-16 15:46:11 -04:00
Makefile ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
pci.c
phy.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
rc.c
rc.h
recv.c ath9k: fix power save race conditions 2010-09-16 15:46:09 -04:00
reg.h ath9k_htc: load proper firmware for device ID 7015 2010-08-13 13:46:20 -04:00
virtual.c ath9k: fix BSSID mask calculation 2010-09-14 16:14:26 -04:00
wmi.c ath9k_htc: Fix memory leak on WMI event handler 2010-09-14 16:14:26 -04:00
wmi.h ath9k_htc: Fix memory leak on WMI event handler 2010-09-14 16:14:26 -04:00
xmit.c ath9k: remove duplicate get_hw_crypto_keytype() 2010-08-16 15:26:41 -04:00