1
linux/drivers/net/wireless/ath9k
Senthil Balasubramanian 773b4e02be ath9: Fix ath_rx_flush_tid() for IRQs disabled kernel warning message.
This patch addresses an issue with the locking order. ath_rx_flush_tid()
uses spin_lock/unlock_bh when IRQs are disabled in sta_notify by mac80211.

As node clean up is still pending with ath9k and this problematic portion
of the code is expected to change anyway, thinking of a proper fix may not
be worthwhile. So having this interim fix helps the users to get rid of the
kernel warning message.

Pasted the kernel warning message for reference.

kernel: ath0: No ProbeResp from current AP 00:1b:11:60:7a:3d - assume out of range
kernel: ------------[ cut here ]------------
kernel: WARNING: at kernel/softirq.c:136 local_bh_enable+0x3c/0xab()
kernel: Pid: 1029, comm: ath9k Not tainted 2.6.27-rc4-wt-w1fi-wl
kernel:
kernel: Call Trace:
kernel:  [<ffffffff802278d8>] warn_on_slowpath+0x51/0x77
kernel:  [<ffffffff80224c51>] check_preempt_wakeup+0xf3/0x123
kernel:  [<ffffffff80239658>] autoremove_wake_function+0x9/0x2e
kernel:  [<ffffffff8022c281>] local_bh_enable+0x3c/0xab
kernel:  [<ffffffffa01ab75a>] ath_rx_node_cleanup+0x38/0x6e [ath9k]
kernel:  [<ffffffffa01b2280>] ath_node_detach+0x3b/0xb6 [ath9k]
kernel:  [<ffffffffa01ab09f>] ath9k_sta_notify+0x12b/0x165 [ath9k]
kernel:  [<ffffffff802366cf>] queue_work+0x1d/0x49
kernel:  [<ffffffffa018c3fc>] add_todo+0x70/0x99 [mac80211]
kernel:  [<ffffffffa017de76>] __sta_info_unlink+0x16b/0x19e [mac80211]
kernel:  [<ffffffffa017e6ed>] sta_info_unlink+0x18/0x43 [mac80211]
kernel:  [<ffffffffa0182732>] ieee80211_associated+0xaa/0x16d [mac80211]
kernel:  [<ffffffffa0184a1a>] ieee80211_sta_work+0x4fb/0x6b4 [mac80211]
kernel:  [<ffffffff80469c58>] thread_return+0x30/0xa9
kernel:  [<ffffffffa018451f>] ieee80211_sta_work+0x0/0x6b4 [mac80211]
kernel:  [<ffffffff802362c2>] run_workqueue+0xb1/0x17a
kernel:  [<ffffffff80236be9>] worker_thread+0xd0/0xdb
kernel:  [<ffffffff8023964f>] autoremove_wake_function+0x0/0x2e
kernel:  [<ffffffff80236b19>] worker_thread+0x0/0xdb
kernel:  [<ffffffff8023954a>] kthread+0x47/0x75
kernel:  [<ffffffff80223121>] schedule_tail+0x18/0x50
kernel:  [<ffffffff8020bc49>] child_rip+0xa/0x11
kernel:  [<ffffffff80239503>] kthread+0x0/0x75
kernel:  [<ffffffff8020bc3f>] child_rip+0x0/0x11
kernel:
kernel: ---[ end trace e9bb5da661055827 ]---

Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-09-02 17:40:03 -04:00
..
ath9k.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
beacon.c ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
core.c ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
core.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
hw.c ath9k: Incorrect key used when group and pairwise ciphers are different. 2008-09-02 17:40:03 -04:00
hw.h
initvals.h
Kconfig
main.c ath9k: Incorrect key used when group and pairwise ciphers are different. 2008-09-02 17:40:03 -04:00
Makefile
phy.c
phy.h
rc.c ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
rc.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
recv.c ath9: Fix ath_rx_flush_tid() for IRQs disabled kernel warning message. 2008-09-02 17:40:03 -04:00
reg.h
regd_common.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
regd.c ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
regd.h ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00
xmit.c ath9k: Revamp wireless mode usage 2008-08-07 09:49:44 -04:00