linux/drivers
Bruno Randolf 234132960d ath5k: Keep last descriptor in queue
If we return a TX descriptor to the pool of available descriptors, while a
queues TXDP still points to it we could potentially run into all sorts of
troube.

It has been suggested that there is hardware which can set the descriptors
done bit before it reads ds_link and moves on to the next descriptor. While the
documentation says this is not true for newer chipsets (the descriptor contents
are copied to some internal memory), we don't know about older hardware.

To be safe, we always keep the last descriptor in the queue, and avoid dangling
TXDP pointers. Unfortunately this does not fully resolve the problem - queues
still get stuck!

This is similar to what ath9k does.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-09-21 11:05:15 -04:00
..
accessibility
acpi acpi ec_sys: Be more cautious about ec write access 2010-08-03 09:49:13 -04:00
amba ARM: AMBA: Add pclk support to AMBA bus infrastructure 2010-07-31 13:07:27 +01:00
ata
atm solos-pci: Fix race condition in tasklet RX handling 2010-08-07 23:02:59 -07:00
auxdisplay
base Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-08-04 11:47:58 -07:00
block Merge branch 'master' into for-next 2010-08-04 15:14:38 +02:00
bluetooth Bluetooth: Fix kfree() => kfree_skb() in hci_ath.c 2010-07-27 15:27:45 -07:00
cdrom
char ppp: make channel_ops const 2010-08-04 21:53:17 -07:00
clocksource
connector
cpufreq [CPUFREQ] fix brace coding style issue. 2010-08-03 13:47:05 -04:00
cpuidle [CPUFREQ] x86 cpufreq: Make trace_power_frequency cpufreq driver independent 2010-08-03 13:47:05 -04:00
crypto Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
dca
dio
dma Merge branch 'master' into for-next 2010-08-04 15:14:38 +02:00
edac amd64_edac: Minor formatting fix 2010-08-04 11:16:01 +02:00
eisa
firewire
firmware Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft-2.6 2010-08-04 11:25:58 -07:00
gpio Merge branch 'misc' into devel 2010-07-31 14:20:02 +01:00
gpu Merge branch 'master' into for-next 2010-08-04 15:14:38 +02:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2010-08-04 15:23:49 -07:00
hwmon
i2c
ide
idle Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq 2010-08-04 11:13:36 -07:00
ieee1394
ieee802154
infiniband Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
input Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
isdn isdn: gigaset: use after free 2010-08-07 23:04:12 -07:00
leds
lguest
macintosh
mca
md
media Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
memstick
message Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
mfd
misc Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2010-08-04 15:15:15 -07:00
mmc Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-08-03 14:31:24 -07:00
mtd Merge branch 'master' into for-next 2010-08-04 15:14:38 +02:00
net ath5k: Keep last descriptor in queue 2010-09-21 11:05:15 -04:00
nubus
of
oprofile
parisc Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
parport
pci
pcmcia Merge branch 'master' into for-next 2010-08-04 15:14:38 +02:00
platform ips driver: make it less chatty 2010-08-03 11:55:15 -04:00
pnp
power Merge git://git.infradead.org/users/cbou/battery-2.6.35 2010-07-27 09:22:55 -07:00
pps
ps3
rapidio
regulator regulator: tps6507x: allow driver to use DEFDCDC{2,3}_HIGH register 2010-07-28 15:09:26 +01:00
rtc Merge branch 'master' into for-next 2010-08-04 15:14:38 +02:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2010-08-04 15:15:15 -07:00
sbus
scsi Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
serial Merge branch 'master' into for-next 2010-08-04 15:14:38 +02:00
sfi
sh
sn
spi
ssb
staging Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
tc
telephony
thermal
uio
usb Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
uwb
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-08-04 11:47:58 -07:00
video Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
virtio virtio: fix oops on OOM 2010-07-26 08:05:31 -07:00
vlynq
w1
watchdog
xen
zorro
Kconfig
Makefile