linux_old1/drivers/net/wireless
Bruno Randolf b3f194e54b ath5k: clean up rxlink handling
There were a few places where the sc->rxlink pointer was set to NULL "just in
case". This helps nothing - quite to the contrary it is problematic since it
can create self-linked rx descriptors in the middle of the list of receive
buffers.

Here is an example how this could happen (thanks Bob!):

cpu 0:                                      cpu 1:

ath5k_rx_stop
                                            ath5k_tasklet_rx
sc->rxlink = NULL;   /* just in case */
                                              // following doesn't link used
                                              // buffer to prev.
                                              ath5k_rxbuf_setup()

In the case of ath5k_rx_stop() and ath5k_stop_locked() buffers/descriptors are
not changed so rxlink should not be changed as well.

In ath5k_intr() we seem to  try to work around a hardware bug, as the comment
(which is copied 1:1 from the HAL) suggests. I don't see how this could help.
Also the HAL does not set rxlink in this case (So where does this code come
from? It has been there since the first import of ath5k). Changed to just
increment a statistics counter.

After this patch rxlink is only set to NULL before we initialize rx descriptors
and updated when the descriptors are linked together.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-07-14 13:52:46 -04:00
..
ath ath5k: clean up rxlink handling 2010-07-14 13:52:46 -04:00
b43 b43: Add SDIO_DEVICE() for EW-CG1102GC 2010-06-28 15:16:19 -04:00
b43legacy b43legacy: replace the ssb_dma API with the generic DMA API 2010-06-04 16:00:42 -04:00
hostap hostap: fixup strlen() math 2010-07-12 16:05:32 -04:00
ipw2x00 ipw2200: Enable LED by default 2010-06-16 14:58:57 -04:00
iwlwifi drivers/net/wireless: Remove unnecessary casts of private_data 2010-07-14 13:52:45 -04:00
iwmc3200wifi cfg80211/mac80211: Update set_tx_power to use mBm instead of dBm units 2010-06-24 15:42:33 -04:00
libertas drivers/net/wireless: Remove unnecessary casts of private_data 2010-07-14 13:52:45 -04:00
libertas_tf Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-06-17 16:21:14 -04:00
orinoco wireless: fix several minor description typos 2010-06-02 16:13:18 -04:00
p54 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-06-17 16:21:14 -04:00
prism54 prism54: call BUG_ON() earlier 2010-07-12 16:05:32 -04:00
rt2x00 rt2x00: Move driver callback functions into the ops structure 2010-07-12 16:05:37 -04:00
rtl818x rtl8180: mark rtl8180_beacon_work static 2010-06-24 11:08:37 -04:00
wl12xx wl1271: use __packed annotation 2010-07-12 16:05:31 -04:00
zd1211rw zd1211rw: change ZD_REGDOMAIN_JAPAN_* naming 2010-06-16 14:58:46 -04:00
Kconfig wireless: depends on NET 2010-05-10 14:56:49 -04:00
Makefile
adm8211.c adm8211: fix memory leak 2010-07-12 16:05:32 -04:00
adm8211.h
airo.c wireless: airo: delete netdev from list after it is freed 2010-07-14 13:52:45 -04:00
airo.h
airo_cs.c pcmcia: dev_node removal (drivers with updated printk call) 2010-05-10 10:23:15 +02:00
at76c50x-usb.c at76c50x-usb: Extract bssid from authentication frame 2010-06-24 15:42:33 -04:00
at76c50x-usb.h at76c50x-usb: Extract bssid from authentication frame 2010-06-24 15:42:33 -04:00
atmel.c net: trans_start cleanups 2010-05-10 05:01:31 -07:00
atmel.h
atmel_cs.c pcmcia: dev_node removal (write-only drivers) 2010-05-10 10:23:14 +02:00
atmel_pci.c
mac80211_hwsim.c mac80211_hwsim: fix fake_hw_scan 2010-06-18 15:11:14 -04:00
mwl8k.c mwl8k: use the dma state API instead of the pci equivalents 2010-06-02 16:02:53 -04:00
ray_cs.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-05-20 21:04:44 -07:00
ray_cs.h pcmcia: dev_node removal (drivers with unregister_netdev check) 2010-05-10 10:23:16 +02:00
rayctl.h
rndis_wlan.c cfg80211/mac80211: Update set_tx_power to use mBm instead of dBm units 2010-06-24 15:42:33 -04:00
wl3501.h pcmcia: dev_node removal (drivers with unregister_netdev check) 2010-05-10 10:23:16 +02:00
wl3501_cs.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-05-20 21:04:44 -07:00
zd1201.c drivers/net: Remove unnecessary returns from void function()s 2010-05-14 00:19:28 -07:00
zd1201.h