OpenCloudOS-Kernel/drivers/net/wireless/ath/ath9k
Luis R. Rodriguez 1e45028528 ath9k: add locking for stopping RX
ath9k locks for starting RX but not for stopping RX. We could
potentially run into a situation where tried to stop RX
but immediately started RX. This allows for races on the
the RX engine deciding what buffer we last left off on
and could potentially cause ath9k to DMA into already
free'd memory or in the worst case at a later time to
already given memory to other drivers.

Fix this by locking stopping RX.

This is part of a series that will help resolve the bug:

https://bugzilla.kernel.org/show_bug.cgi?id=14624

For more details about this issue refer to:

http://marc.info/?l=linux-wireless&m=128629803703756&w=2

Cc: stable@kernel.org
Cc: Ben Greear <greearb@candelatech.com>
Cc: Kyungwan Nam <kyungwan.nam@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Tested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-10-27 15:41:14 -04:00
..
Kconfig ath9k: make the driver specific rate control module optional 2010-09-21 11:05:35 -04:00
Makefile ath9k: make the driver specific rate control module optional 2010-09-21 11:05:35 -04:00
ahb.c drivers/net/wireless: Use wiphy_<level> 2010-07-27 15:14:13 -04:00
ani.c ath9k_hw: fix PHY counter overflow handling in ANI v1 2010-10-15 15:48:44 -04:00
ani.h ath9k_hw: move the cycle counter tracking to ath 2010-10-11 15:04:20 -04:00
ar5008_initvals.h ath9k_hw: reformat the ar5008, ar9001 and ar9002 initvals to match ar9003 2010-07-02 13:44:34 -04:00
ar5008_phy.c ath9k_hw: clean up ANI state handling 2010-10-06 16:30:39 -04:00
ar9001_initvals.h ath9k_hw: sync initvals for ar9001 and ar9002 with Atheros 2010-07-02 13:44:35 -04:00
ar9002_calib.c ath9k_hw: clean up register write buffering 2010-10-06 16:30:38 -04:00
ar9002_hw.c ath9k_hw: merge ath9k_hw_ani_monitor_old and ath9k_hw_ani_monitor_new 2010-10-06 16:30:39 -04:00
ar9002_initvals.h ath9k_hw: remove initvals for hardware which was never sold 2010-07-14 13:52:46 -04:00
ar9002_mac.c ath9k_hw: report the TID in the tx status on AR5008-AR9002 2010-07-12 16:05:38 -04:00
ar9002_phy.c ath9k_hw: clean up register write buffering 2010-10-06 16:30:38 -04:00
ar9002_phy.h ath9k_hw: Add functions to get/set antenna diversity configuration 2010-09-07 13:54:33 -04:00
ar9003_2p2_initvals.h ath9k_hw: Fix TX carrier leakage for IEEE compliance on AR9003 2.2 2010-10-25 14:43:14 -04:00
ar9003_calib.c ath9k_hw: clean up calibration flags 2010-10-06 16:26:01 -04:00
ar9003_eeprom.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-09-24 15:52:34 -04:00
ar9003_eeprom.h ath9k_hw: add support for parsing PA predistortion related EEPROM fields 2010-06-14 15:39:32 -04:00
ar9003_hw.c ath9k_hw: remove AR9003 2.0 support 2010-10-15 15:57:39 -04:00
ar9003_mac.c ath9k_hw: handle rx key miss 2010-09-14 16:14:27 -04:00
ar9003_mac.h ath9k_hw: report the TID in the tx status on AR5008-AR9002 2010-07-12 16:05:38 -04:00
ar9003_paprd.c ath9k_hw: Fix divide by zero cases in paprd. 2010-10-25 14:43:14 -04:00
ar9003_phy.c ath9k_hw: move the cycle counter tracking to ath 2010-10-11 15:04:20 -04:00
ar9003_phy.h ath9k_hw: add register definitions related to PA predistortion 2010-06-14 15:39:32 -04:00
ath9k.h ath9k: Remove bf_dmacontext. 2010-10-15 15:57:41 -04:00
beacon.c ath9k: resume aggregation immediately after a hardware reset 2010-10-25 14:45:56 -04:00
btcoex.c ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
btcoex.h
calib.c ath9k_hw: clean up register write buffering 2010-10-06 16:30:38 -04:00
calib.h ath9k_hw: clean up calibration flags 2010-10-06 16:26:01 -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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
debug.h ath9k: make rate control debugfs stats per station 2010-10-15 15:48:44 -04:00
eeprom.c ath9k_hw: Cleanup TX power calculation for AR9287 2010-06-03 14:10:46 -04:00
eeprom.h ath9k_hw: simplify revision checks for AR9287 2010-09-27 15:57:42 -04:00
eeprom_4k.c ath9k_hw: clean up register write buffering 2010-10-06 16:30:38 -04:00
eeprom_9287.c ath9k_hw: simplify revision checks for AR9280 2010-09-27 15:57:39 -04:00
eeprom_def.c ath9k_hw: simplify revision checks for AR9280 2010-09-27 15:57:39 -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 ath9k_htc: Add support for AR7010 2010-06-04 16:00:39 -04:00
htc.h ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
htc_drv_beacon.c ath9k_htc: Fix beacon distribution in IBSS mode 2010-09-24 15:54:32 -04:00
htc_drv_gpio.c ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
htc_drv_init.c ath9k_hw: remove enum wireless_mode and its users 2010-10-15 15:48:45 -04:00
htc_drv_main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
htc_drv_txrx.c ath9k_htc: set probe request rx filter 2010-10-15 15:57:33 -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 ath9k_hw: merge ath9k_hw_ani_monitor_old and ath9k_hw_ani_monitor_new 2010-10-06 16:30:39 -04:00
hw.c ath9k_hw: remove enum wireless_mode and its users 2010-10-15 15:48:45 -04:00
hw.h ath9k_hw: remove enum wireless_mode and its users 2010-10-15 15:48:45 -04:00
init.c ath9k: Properly initialize ath_common->cc_lock. 2010-10-25 14:43:13 -04:00
mac.c ath9k_hw: Fix hw reset failure with HTC driver 2010-10-07 14:41:28 -04:00
mac.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
main.c ath9k: resume aggregation immediately after a hardware reset 2010-10-25 14:45:56 -04:00
pci.c drivers/net/wireless: Use wiphy_<level> 2010-07-27 15:14:13 -04:00
phy.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
rc.c ath9k_hw: remove enum wireless_mode and its users 2010-10-15 15:48:45 -04:00
rc.h ath9k: make rate control debugfs stats per station 2010-10-15 15:48:44 -04:00
recv.c ath9k: add locking for stopping RX 2010-10-27 15:41:14 -04:00
reg.h ath9k_hw: remove AR9003 2.0 support 2010-10-15 15:57:39 -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: resume aggregation immediately after a hardware reset 2010-10-25 14:45:56 -04:00