linux/drivers/net/wireless
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
..
ath5k Ath5k: fix bintval setup 2008-08-26 20:06:31 -04:00
ath9k ath9: Fix ath_rx_flush_tid() for IRQs disabled kernel warning message. 2008-09-02 17:40:03 -04:00
b43 removed unused #include <version.h> 2008-08-18 11:05:15 -04:00
b43legacy mac80211: partially fix skb->cb use 2008-07-29 16:55:08 -04:00
hostap netdev: Handle ->addr_list_lock just like ->_xmit_lock for lockdep. 2008-07-22 14:16:42 -07:00
iwlwifi iwlwifi: fix 64bit platform firmware loading 2008-09-02 17:12:49 -04:00
libertas wireless/libertas/if_cs.c: fix memory leaks 2008-09-02 17:39:50 -04:00
p54 p54u: reset skb's data/tail pointer on requeue 2008-08-18 11:05:14 -04:00
prism54 prism54 - Use offsetof() 2008-08-01 15:31:35 -04:00
rt2x00 rt2x00: Compiler warning unmasked by fix of BUILD_BUG_ON 2008-09-02 17:40:02 -04:00
zd1211rw mac80211: remove IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE flag 2008-07-29 16:36:24 -04:00
adm8211.c
adm8211.h
airo.c
airo.h
airo_cs.c
airport.c
arlan-main.c
arlan-proc.c
arlan.h
atmel.c atmel: try open system authentication too 2008-08-26 20:06:30 -04:00
atmel.h
atmel_cs.c
atmel_pci.c
hermes.c
hermes.h
hermes_rid.h
i82586.h
i82593.h
ipw2100.c removed unused #include <version.h> 2008-08-18 11:05:15 -04:00
ipw2100.h
ipw2200.c removed unused #include <version.h> 2008-08-18 11:05:15 -04:00
ipw2200.h
Kconfig ath9k: Add new Atheros IEEE 802.11n driver 2008-08-07 09:49:42 -04:00
mac80211_hwsim.c mac80211: fix sparse integer as NULL pointer warning 2008-07-29 16:55:07 -04:00
Makefile ath9k: Add new Atheros IEEE 802.11n driver 2008-08-07 09:49:42 -04:00
netwave_cs.c
orinoco.c orinoco: Multicast to the specified addresses 2008-09-02 17:39:49 -04:00
orinoco.h
orinoco_cs.c
orinoco_nortel.c
orinoco_pci.c
orinoco_pci.h
orinoco_plx.c
orinoco_tmd.c
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c
rtl818x.h rtl8187: Change detection of RTL8187B with USB ID of 8187 2008-07-08 14:16:07 -04:00
rtl8180.h
rtl8180_dev.c
rtl8180_grf5101.c
rtl8180_grf5101.h
rtl8180_max2820.c
rtl8180_max2820.h
rtl8180_rtl8225.c
rtl8180_rtl8225.h
rtl8180_sa2400.c
rtl8180_sa2400.h
rtl8187.h rtl8187: Fix lockups due to concurrent access to config routine 2008-08-01 15:31:35 -04:00
rtl8187_dev.c rtl8187: Add USB ID for Netgear WG111V3 2008-08-18 11:05:13 -04:00
rtl8187_rtl8225.c rtl8187: use different ANAPARAM*_OFF values for 8187B 2008-07-14 14:52:56 -04:00
rtl8187_rtl8225.h rtl8187: use different ANAPARAM*_OFF values for 8187B 2008-07-14 14:52:56 -04:00
spectrum_cs.c
strip.c Fix strip driver back up for ldisc/tty changes 2008-07-20 17:12:38 -07:00
wavelan.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
wavelan.h
wavelan.p.h
wavelan_cs.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
wavelan_cs.h
wavelan_cs.p.h
wl3501.h
wl3501_cs.c
zd1201.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-18 02:39:39 -07:00
zd1201.h