linux/drivers/net/wireless
David S. Miller 4bb073c0e3 net: Eliminate flush_scheduled_work() calls while RTNL is held.
If the RTNL is held when we invoke flush_scheduled_work() we could
deadlock.  One such case is linkwatch, it is a work struct which tries
to grab the RTNL semaphore.

The most common case are net driver ->stop() methods.  The
simplest conversion is to instead use cancel_{delayed_}work_sync()
explicitly on the various work struct the driver uses.

This is an OK transformation because these work structs are doing
things like resetting the chip, restarting link negotiation, and so
forth.  And if we're bringing down the device, we're about to turn the
chip off and reset it anways.  So if we cancel a pending work event,
that's fine here.

Some drivers were working around this deadlock by using a msleep()
polling loop of some sort, and those cases are converted to instead
use cancel_{delayed_}work_sync() as well.

Signed-off-by: David S. Miller <davem@davemloft.net>
2008-06-12 02:22:02 -07:00
..
ath5k ath5k: Fix loop variable initializations 2008-05-20 17:48:12 -04:00
b43 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-05-30 07:45:20 -07:00
b43legacy b43legacy: Fix controller restart crash 2008-06-04 15:57:09 -04:00
hostap net: Eliminate flush_scheduled_work() calls while RTNL is held. 2008-06-12 02:22:02 -07:00
iwlwifi iwlwifi: fix oops in iwl3945_led_brightness_set 2008-06-09 15:53:38 -04:00
libertas libertas: fix sleep confirmation 2008-06-09 15:50:20 -04:00
p54 USB ID for Philips CPWUA054/00 Wireless USB Adapter 11g 2008-06-04 15:57:11 -04:00
prism54 prism54: fix regression with missing carrier in AP-mode 2008-05-12 21:18:04 -04:00
rt2x00 rt2x00: Use atomic interface iteration in irq context 2008-05-28 16:43:45 -04:00
zd1211rw zd1211rw: Fix data padding for QoS 2008-06-09 15:50:20 -04:00
Kconfig
Makefile iwlwifi: Allow building iwl3945 without iwl4965. 2008-04-27 15:38:30 -07:00
adm8211.c
adm8211.h
airo.c airo warning fix 2008-06-04 15:57:10 -04:00
airo.h
airo_cs.c
airport.c
arlan-main.c
arlan-proc.c
arlan.h
atmel.c byteorder: don't directly include linux/byteorder/generic.h 2008-05-16 12:01:45 -07:00
atmel.h
atmel_cs.c
atmel_pci.c
hermes.c
hermes.h
hermes_rid.h
i82586.h
i82593.h
ipw2100.c
ipw2100.h
ipw2200.c ipw2200: queue direct scans 2008-06-09 15:50:16 -04:00
ipw2200.h ipw2200: queue direct scans 2008-06-09 15:50:16 -04:00
netwave_cs.c
orinoco.c
orinoco.h
orinoco_cs.c orinoco_cs: add ID for SpeedStream wireless adapters 2008-05-20 17:55:30 -04:00
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 rndis_wlan: add missing range check for power_output modparam 2008-05-28 16:43:48 -04:00
rtl818x.h
rtl8180.h
rtl8180_dev.c
rtl8180_grf5101.c rtl8180: fix wrong parameter in grf5101_rf_set_channel 2008-05-28 16:43:40 -04:00
rtl8180_grf5101.h
rtl8180_max2820.c rtl8180: fix wrong parameter in max2820_rf_set_channel 2008-05-28 16:43:39 -04:00
rtl8180_max2820.h
rtl8180_rtl8225.c
rtl8180_rtl8225.h
rtl8180_sa2400.c rtl8180: fix wrong parameter in sa2400_rf_set_channel 2008-05-28 16:43:38 -04:00
rtl8180_sa2400.h
rtl8187.h
rtl8187_dev.c rtl8187: resource leak in error case 2008-05-20 17:55:29 -04:00
rtl8187_rtl8225.c
rtl8187_rtl8225.h
spectrum_cs.c
strip.c strip: Fix termios assumption 2008-05-12 07:27:38 -07:00
wavelan.c wavelan: avoid index past end of array if DEBUG_SHOW_UNUSED is defined 2008-05-12 21:18:05 -04:00
wavelan.h
wavelan.p.h
wavelan_cs.c wavelan: avoid index past end of array if DEBUG_SHOW_UNUSED is defined 2008-05-12 21:18:05 -04:00
wavelan_cs.h
wavelan_cs.p.h
wl3501.h
wl3501_cs.c
zd1201.c
zd1201.h