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
adm8211.c
adm8211: remove commented-out code
2008-04-08 16:44:45 -04:00
adm8211.h
cfg80211 API for channels/bitrates, mac80211 and driver conversion
2008-02-29 15:19:32 -05:00
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: fix warning when PROC_FS=n
2008-03-24 19:25:08 -04:00
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
latency.c: use QoS infrastructure
2008-02-05 09:44:22 -08:00
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
Kconfig
p54: move to separate directory
2008-04-08 16:44:45 -04:00
Makefile
iwlwifi: Allow building iwl3945 without iwl4965.
2008-04-27 15:38:30 -07:00
netwave_cs.c
pcmcia: replace kio_addr_t with unsigned int everywhere
2008-02-05 09:44:08 -08:00
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
proc: switch /proc/driver/ray_cs/ray_cs to seq_file interface
2008-04-16 15:59:56 -04:00
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
cfg80211 API for channels/bitrates, mac80211 and driver conversion
2008-02-29 15:19:32 -05:00
rtl8180.h
cfg80211 API for channels/bitrates, mac80211 and driver conversion
2008-02-29 15:19:32 -05:00
rtl8180_dev.c
endianness annotations: drivers/net/wireless/rtl8180_dev.c
2008-04-01 17:13:16 -04:00
rtl8180_grf5101.c
rtl8180: fix wrong parameter in grf5101_rf_set_channel
2008-05-28 16:43:40 -04:00
rtl8180_grf5101.h
Add rtl8180 wireless driver
2008-01-28 15:09:35 -08:00
rtl8180_max2820.c
rtl8180: fix wrong parameter in max2820_rf_set_channel
2008-05-28 16:43:39 -04:00
rtl8180_max2820.h
Add rtl8180 wireless driver
2008-01-28 15:09:35 -08:00
rtl8180_rtl8225.c
cfg80211 API for channels/bitrates, mac80211 and driver conversion
2008-02-29 15:19:32 -05:00
rtl8180_rtl8225.h
Add rtl8180 wireless driver
2008-01-28 15:09:35 -08:00
rtl8180_sa2400.c
rtl8180: fix wrong parameter in sa2400_rf_set_channel
2008-05-28 16:43:38 -04:00
rtl8180_sa2400.h
Add rtl8180 wireless driver
2008-01-28 15:09:35 -08:00
rtl8187.h
cfg80211 API for channels/bitrates, mac80211 and driver conversion
2008-02-29 15:19:32 -05:00
rtl8187_dev.c
rtl8187: resource leak in error case
2008-05-20 17:55:29 -04:00
rtl8187_rtl8225.c
cfg80211 API for channels/bitrates, mac80211 and driver conversion
2008-02-29 15:19:32 -05:00
rtl8187_rtl8225.h
Add rtl8180 wireless driver
2008-01-28 15:09:35 -08:00
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: mark hardware interfacing structures as packed
2008-02-15 13:44:17 -05:00
wavelan.p.h
WAVELAN - compile-time check for struct sizes
2008-01-28 15:09:50 -08:00
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 arm fix
2008-03-24 19:25:07 -04:00
wavelan_cs.p.h
wavelan_cs: stop inlining largish static functions
2008-04-08 15:05:57 -04:00
wl3501.h
wl3501_cs.c
zd1201.c
zd1201.h