linux/drivers/net/wireless
Daniel Drake df90d84382 libertas: fix handling of command timeout, completion and interruption
When commands time out, corruption ensues. As lbs_complete_command()
is called without locking, the command node is mistakenly freed twice.
Also fixed up locking here in a few other places.

The nature of command timeout may be that the card didn't even
acknowledge receipt of the request. Detect this case and reset dnld_sent
so that other commands don't hang forever.

When cmdnodes are moved between the free list and the pending list,
their list heads should be reinitialized. Fixed this.

Sometimes commands are completed without actually submitting them or
removing them from cmdpendingq. We must remember to remove them from
cmdpendingq in these cases, so handle this in lbs_complete_command().

Harmless signals generated during suspend/resume were interrupting
lbs_cmd. Convert to an uninterruptible sleep to avoid this.

lbs_thread must be woken up every time there is some new work to do.
I found that when 2 commands are queued, ther completion of the first
command would not wake up lbs_thread to submit the second. Poke lbs_thread
at the end of lbs_complete_command() to fix this.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-07-11 15:02:19 -04:00
..
ath ath5k: fix typos, bad comment formatting and GHz in place of MHz 2011-07-11 15:02:16 -04:00
b43 net/b43: don't return IRQ_HANDLED if nothing was done 2011-07-08 11:42:25 -04:00
b43legacy b43legacy: Fix warnings from gcc 4.6.0 2011-06-01 15:12:30 -04:00
hostap net: call dev_alloc_name from register_netdevice 2011-05-05 10:57:45 -07:00
ipw2x00 ipw2100: Fix command list for debugging 2011-07-06 15:05:43 -04:00
iwlegacy mac80211: fix TKIP races, make API easier to use 2011-07-08 11:11:19 -04:00
iwlwifi iwlagn: remove iwlagn_hcmd_utils structure and call directly 2011-07-11 15:02:10 -04:00
iwmc3200wifi Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-24 16:47:54 -04:00
libertas libertas: fix handling of command timeout, completion and interruption 2011-07-11 15:02:19 -04:00
libertas_tf wireless: unify QoS control field definitions 2011-06-27 15:09:39 -04:00
mwifiex mwifiex: 11n specific configuration for transmit 2011-07-11 15:02:10 -04:00
orinoco
p54 Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-24 16:47:54 -04:00
prism54
rt2x00 rt2x00: Implement tx_frames_pending mac80211 callback function. 2011-07-07 13:21:00 -04:00
rtl818x
rtlwifi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2011-07-11 14:46:59 -04:00
wl12xx Merge branch 'for-linville' of git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx 2011-07-08 11:05:20 -04:00
wl1251
zd1211rw zd1211rw: detect stalled beacon interrupt faster 2011-06-22 16:09:47 -04:00
adm8211.c
adm8211.h
airo_cs.c
airo.c Merge branch 'for-davem' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2011-05-25 13:28:55 -04:00
airo.h
at76c50x-usb.c
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c
atmel.h
Kconfig
mac80211_hwsim.c mac80211: restrict advertised HW scan rates 2011-06-27 15:09:39 -04:00
mac80211_hwsim.h mac80211_hwsim driver support userspace frame tx/rx 2011-06-01 15:11:00 -04:00
Makefile
mwl8k.c mwl8k: Tell firmware to generate CCMP header 2011-06-15 08:13:03 -04:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c cfg80211: Use consistent BSS matching between scan and sme 2011-05-19 10:37:18 -04:00
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h