1
linux/drivers/net/wireless
Igor Perminov 17512dc3b7 rt2x00: Fix for race condition while update beacon
The patch "Implement set_tim callback for all drivers" can cause kernel
oops in rt73usb_write_beacon. The oops is caused by one of the following
race conditions:
* In case of two near calls to set_tim: rt2x00lib_beacondone_iter is
cleaning the beacon skb, whereas rt73usb_write_beacon is still using it.
* In case of two near updates of beacon: first as the result of set_tim
and second as the result of a call from an application (e.g. hostapd).
This patch fixes the race condition by rearranging the update logic and
guarding rt2x00_intf->beacon->skb with a mutex.

Signed-off-by: Igor Perminov <igor.perminov@inbox.ru>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-08-14 09:13:53 -04:00
..
ath drivers/net/wireless/ath/ath5k: Change constant name 2009-08-14 09:13:51 -04:00
b43 b43: Fix hardware key index handling 2009-08-14 09:13:45 -04:00
b43legacy b43legacy: Work around mac80211 race condition 2009-08-04 16:44:24 -04:00
hostap
ipw2x00 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
iwlwifi iwlwifi: automatically adjust sleep level 2009-08-14 09:13:50 -04:00
iwmc3200wifi Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
libertas Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
libertas_tf
orinoco orinoco: consolidate storage of WEP and TKIP keys 2009-08-14 09:12:45 -04:00
p54 p54: implement rfkill 2009-08-14 09:13:45 -04:00
prism54
rt2x00 rt2x00: Fix for race condition while update beacon 2009-08-14 09:13:53 -04:00
rtl818x mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
wl12xx wl1251: hack to disable filters for fixing association 2009-08-14 09:13:42 -04:00
zd1211rw zd1211rw: make it clear we don't use leds.h LED stuff 2009-08-14 09:12:39 -04:00
adm8211.c adm8211: remove uneeded code during suspend/resume 2009-07-24 15:05:30 -04:00
adm8211.h
airo_cs.c
airo.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
airo.h
arlan-main.c arlan: inverted logic? 2009-07-24 15:05:27 -04:00
arlan-proc.c
arlan.h
at76c50x-usb.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c
atmel.h
i82586.h
i82593.h
Kconfig wireless: use menuconfig for WLAN_PRE80211 and WLAN_80211 2009-08-04 16:43:21 -04:00
mac80211_hwsim.c
Makefile
mwl8k.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
netwave_cs.c
ray_cs.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: rework key handling 2009-08-04 16:44:17 -04:00
strip.c drivers/net/wireless: Use DIV_ROUND_CLOSEST 2009-08-04 16:44:23 -04:00
wavelan_cs.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
wavelan_cs.h
wavelan_cs.p.h
wavelan.c
wavelan.h
wavelan.p.h
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h