linux/drivers/net/wireless/p54
Quintin Pitts 5988f385b4 p54pci: prevent stuck rx-ring on slow system
This patch fixes an old problem, which - under certain
circumstances - could cause the device to become
unresponsive.

most of p54pci's rx-ring management is implemented in just
two distinct standalone functions. p54p_check_rx_ring takes
care of processing incoming data, while p54p_refill_rx_ring
tries to replenish all depleted communication buffers.

This has always worked fine on my fast machine, but
now I know there is a hidden race...

The most likely candidate here is ring_control->device_idx.
Quintin Pitts had already analyzed the culprit and posted
a patch back in Oct 2009. But sadly, no one's picked up on this.
( https://patchwork.kernel.org/patch/53079/ [2 & 3] ).
This patch does the same way, except that it also prioritize
rx data processing, simply because tx routines *can* wait.

Reported-by: Sean Young <sean@mess.org>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=11386
Reported-by: Quintin Pitts <geek4linux@gmail.com>
Signed-off-by: Quintin Pitts <geek4linux@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-04-12 15:22:10 -04:00
..
eeprom.c p54: disable channels with incomplete calibration data sets 2009-11-02 15:43:23 -05:00
eeprom.h
fwio.c
Kconfig wireless: remove WLAN_80211 and WLAN_PRE80211 from Kconfig 2009-10-30 16:50:35 -04:00
led.c
lmac.h
main.c p54: Enable HW_REPORTS_TX_ACK_STATUS 2010-03-09 15:02:56 -05:00
Makefile
net2280.h
p54.h p54: remove get_tx_stats() mac80211 op 2010-02-08 16:51:01 -05:00
p54pci.c p54pci: prevent stuck rx-ring on slow system 2010-04-12 15:22:10 -04:00
p54pci.h p54pci: move tx cleanup into tasklet 2010-01-19 16:43:12 -05:00
p54spi_eeprom.h
p54spi.c
p54spi.h
p54usb.c Add USB ID for Thomson SpeedTouch 120g to p54usb id table 2010-03-30 15:37:26 -04:00
p54usb.h
txrx.c wireless/prism54: remove trailing space in messages 2010-03-31 14:39:07 -04:00