linux/drivers/net/wireless/ath/ath9k
Rajkumar Manoharan f6b4e4d476 ath9k: Fix locking issue during tx completion
The received tx status of aggregated frame without BlockAck may
cause deaf state in AR5416 cards. So the driver does a reset to
recover. When this happens, we release the pcu_lock before doing
a reset as ath_rest acquires pcu_lock. This is ugly and also not
atomic. Fixing this addresses the TX DMA failure also.

ath_tx_complete_aggr can be called from different paths which
takes different variants of spin_lock. This patch also addresses
the following warning.

WARNING: at kernel/timer.c:1011 del_timer_sync+0x4e/0x50()
Call Trace:
 <IRQ>  [<ffffffff8104be3a>] warn_slowpath_common+0x7a/0xb0
 [<ffffffff8104be85>] warn_slowpath_null+0x15/0x20
 [<ffffffff8105915e>] del_timer_sync+0x4e/0x50
 [<ffffffffa03726be>] ath_reset+0x3e/0x210 [ath9k]
 [<ffffffff8135cdaf>] ? _raw_spin_unlock_bh+0x1f/0x30
 [<ffffffffa037760a>] ath_tx_complete_aggr.isra.26+0x54a/0xa40 [ath9k]

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-06-27 15:09:42 -04:00
..
ahb.c ath9k: add platform device id for AR9330 2011-06-22 16:09:49 -04:00
ani.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ani.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar5008_initvals.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar5008_phy.c Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-24 16:47:54 -04:00
ar9001_initvals.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9002_calib.c ath9k: Fix AR9287 calibration 2011-05-27 12:53:48 -04:00
ar9002_hw.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9002_initvals.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9002_mac.c ath9k_hw: remove ath9k_hw_get_desc_link 2011-06-01 15:11:00 -04:00
ar9002_phy.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9002_phy.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9003_2p2_initvals.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9003_calib.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9003_eeprom.c ath9k: configure internal regulator for AR9330 2011-06-22 16:09:57 -04:00
ar9003_eeprom.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9003_hw.c ath9k: initialize rx gain table for AR9330 2011-06-22 16:09:50 -04:00
ar9003_mac.c ath9k_hw: Fix false tx hung detection in AR9003 chips 2011-06-27 15:09:40 -04:00
ar9003_mac.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ar9003_paprd.c ath9k_hw: make use of the gain_table_entry macro 2011-06-27 15:09:40 -04:00
ar9003_phy.c ath9k: set diversity group for AR9330 2011-06-22 16:09:56 -04:00
ar9003_phy.h ath9k_hw: Add carrier leak correction in desired gain calculation 2011-06-27 15:09:40 -04:00
ar9330_1p1_initvals.h ath9k: add AR9330 initvals 2011-06-22 16:09:49 -04:00
ar9330_1p2_initvals.h ath9k: add AR9330 initvals 2011-06-22 16:09:49 -04:00
ar9340_initvals.h
ar9485_initvals.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
ath9k.h ath9k: typo fix in a comment 2011-06-17 14:22:25 -04:00
beacon.c ath9k: Fix locking issue during tx completion 2011-06-27 15:09:42 -04:00
btcoex.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
btcoex.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
calib.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
calib.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
common.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
common.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
debug.c ath9k: show excessive-retry MPDUs in debugfs 2011-06-03 15:01:07 -04:00
debug.h ath9k: show excessive-retry MPDUs in debugfs 2011-06-03 15:01:07 -04:00
eeprom_4k.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
eeprom_9287.c ath9k: fix two more bugs in tx power 2011-06-01 14:35:54 -04:00
eeprom_def.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
eeprom.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
eeprom.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
gpio.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
hif_usb.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
hif_usb.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
htc_drv_beacon.c ath9k: Remove ATH9K_BEACON_PERIOD mask 2011-06-01 15:12:28 -04:00
htc_drv_debug.c ath9k_htc: Dump modal eeprom header for UB91/94/95 2011-04-29 15:36:13 -04:00
htc_drv_gpio.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
htc_drv_init.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
htc_drv_main.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
htc_drv_txrx.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
htc_hst.c Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-24 16:47:54 -04:00
htc_hst.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
htc.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
hw-ops.h ath9k_hw: remove ath9k_hw_get_desc_link 2011-06-01 15:11:00 -04:00
hw.c ath9k: enable support for AR9330 2011-06-22 16:09:57 -04:00
hw.h ath9k: add external_reset callback to ath9k_platfom_data for AR9330 2011-06-22 16:09:57 -04:00
init.c ath9k: add external_reset callback to ath9k_platfom_data for AR9330 2011-06-22 16:09:57 -04:00
Kconfig wireless: Default to 'n' for 2 new added devices in Kconfig. 2011-05-27 12:53:46 -04:00
mac.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
mac.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
main.c ath9k: Fix locking issue during tx completion 2011-06-27 15:09:42 -04:00
Makefile
pci.c Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-24 16:47:54 -04:00
phy.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
rc.c ath9k: use standard max(), remove A_MAX macro 2011-06-17 14:22:25 -04:00
rc.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
recv.c ath9k: add fast_div_bias configuration for diversity group 1 2011-06-22 16:09:56 -04:00
reg.h ath9k: define mac version for AR9330 2011-06-22 16:09:48 -04:00
wmi.c ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
wmi.h ath9k: Drag the driver to the year 2011 2011-05-19 13:54:05 -04:00
xmit.c ath9k: Fix locking issue during tx completion 2011-06-27 15:09:42 -04:00