linux/drivers
Stanislaw Gruszka 16f1a5d495 rt2x00usb: fix indexes ordering on RX queue kick
commit efd821182c upstream.

On rt2x00_dmastart() we increase index specified by Q_INDEX and on
rt2x00_dmadone() we increase index specified by Q_INDEX_DONE. So entries
between Q_INDEX_DONE and Q_INDEX are those we currently process in the
hardware. Entries between Q_INDEX and Q_INDEX_DONE are those we can
submit to the hardware.

According to that fix rt2x00usb_kick_queue(), as we need to submit RX
entries that are not processed by the hardware. It worked before only
for empty queue, otherwise was broken.

Note that for TX queues indexes ordering are ok. We need to kick entries
that have filled skb, but was not submitted to the hardware, i.e.
started from Q_INDEX_DONE and have ENTRY_DATA_PENDING bit set.

From practical standpoint this fixes RX queue stall, usually reproducible
in AP mode, like for example reported here:
https://bugzilla.redhat.com/show_bug.cgi?id=828824

Reported-and-tested-by: Franco Miceli <fmiceli@plan.ceibal.edu.uy>
Reported-and-tested-by: Tom Horsley <horsley1953@gmail.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-19 08:58:21 -07:00
..
accessibility
acpi ACPI sysfs.c strlen fix 2012-07-16 08:47:40 -07:00
amba
ata ahci: Detect Marvell 88SE9172 SATA controller 2012-06-01 15:12:55 +08:00
atm solos-pci: Fix DMA support 2012-06-10 00:32:58 +09:00
auxdisplay
base PM / Driver core: leave runtime PM enabled during system shutdown 2012-03-19 08:57:44 -07:00
bcma
block umem: fix up unplugging 2012-07-16 08:47:51 -07:00
bluetooth Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C 2012-06-10 00:33:01 +09:00
cdrom cdrom: use copy_to_user() without the underscores 2012-02-29 16:34:35 -08:00
char char/agp: add another Ironlake host bridge 2012-06-17 11:23:10 -07:00
clk
clocksource Revert "clocksource: sh_cmt: Runtime PM support" 2011-05-31 15:26:42 +09:00
connector Connector: Correctly set the error code in case of success when dispatching receive callbacks 2011-06-07 12:02:00 -07:00
cpufreq powernow-k8: Fix indexing issue 2012-02-13 11:06:13 -08:00
cpuidle Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2011-05-29 11:18:09 -07:00
crypto crypto: mv_cesa requires on CRYPTO_HASH to build 2012-05-21 09:40:03 -07:00
dca
dio
dma dmaengine: at_hdmac: remove clear-on-read in atc_dostart() 2012-05-07 08:56:33 -07:00
edac i7core_edac: fixed typo in error count calculation 2011-08-29 13:29:06 -07:00
eisa
firewire firewire: ohci: fix too-early completion of IR multichannel buffers 2012-04-02 09:27:13 -07:00
firmware efivars: Improve variable validation 2012-05-07 08:56:38 -07:00
gpio pch_gpio: Support new device LAPIS Semiconductor ML7831 IOH 2012-05-21 09:40:05 -07:00
gpu drm/i915: Fix eDP blank screen after S3 resume on HP desktops 2012-07-16 08:47:39 -07:00
hid HID: add more hotkeys in Asus AIO keyboards 2012-04-02 09:27:12 -07:00
hwmon hwmon: (it87) Preserve configuration register bits on init 2012-07-19 08:58:20 -07:00
hwspinlock hwspinlock/core: use a mutex to protect the radix tree 2011-11-11 09:36:31 -08:00
i2c i2c: davinci: Free requested IRQ in remove 2012-06-01 15:13:01 +08:00
ide block: add and use scsi_blk_cmd_ioctl 2012-01-25 17:24:54 -08:00
idle intel_idle: fix API misuse 2012-01-25 17:24:56 -08:00
ieee802154
infiniband RDMA/cxgb4: Drop peer_abort when no endpoint found 2012-06-01 15:12:54 +08:00
input Input: ALPS - fix touchpad detection when buttons are pressed 2012-03-12 10:33:00 -07:00
isdn isdn/gigaset: ratelimit CAPI message dumps 2012-06-01 15:12:53 +08:00
leds Revert "leds: save the delay values after a successful call to blink_set()" 2011-11-21 14:31:19 -08:00
lguest
macintosh
mca
md md/raid10: Don't try to recovery unmatched (and unused) chunks. 2012-07-16 08:47:52 -07:00
media media: dvb-core: Release semaphore on error path dvb_register_device() 2012-07-19 08:58:20 -07:00
memstick
message
mfd mfd: Clear twl6030 IRQ status register only once 2012-04-13 08:14:08 -07:00
misc pch_phub: Improve ADE(Address Decode Enable) control 2012-04-22 16:21:42 -07:00
mmc mmc: sdio: avoid spurious calls to interrupt handlers 2012-06-01 15:13:00 +08:00
mtd mtd: nandsim: don't open code a do_div helper 2012-07-19 08:58:20 -07:00
net rt2x00usb: fix indexes ordering on RX queue kick 2012-07-19 08:58:21 -07:00
nfc
nubus
of
oprofile oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array 2012-07-16 08:47:48 -07:00
parisc
parport
pci PCI: EHCI: fix crash during suspend on ASUS computers 2012-07-16 08:47:50 -07:00
pcmcia pcmcia: fix socket refcount decrementing on each resume 2012-02-13 11:06:10 -08:00
platform intel_ips: blacklist HP ProBook laptops 2012-07-19 08:58:21 -07:00
pnp PNPACPI: Fix device ref leaking in acpi_pnp_match 2012-04-13 08:14:05 -07:00
power drivers/power/ds2780_battery.c: fix deadlock upon insertion and removal 2011-11-11 09:36:32 -08:00
pps
ps3
ptp ptp: Fix clock_getres() implementation 2011-12-21 12:57:36 -08:00
rapidio rapidio: fix use of non-compatible registers 2011-10-03 11:39:46 -07:00
regulator regulator: Fix the logic to ensure new voltage setting in valid range 2012-05-21 09:39:58 -07:00
rtc drivers/rtc/rtc-mxc.c: fix irq enabled interrupts warning 2012-07-16 08:47:52 -07:00
s390 compat: Re-add missing asm/compat.h include to fix compile breakage on s390 2012-03-19 08:57:59 -07:00
sbus
scsi SCSI: Fix dm-multipath starvation when scsi host is busy 2012-06-10 00:32:57 +09:00
sfi
sh drivers: sh: resume enabled clocks fix 2011-06-14 15:15:25 +09:00
sn
spi spi: Fix device unregistration when unregistering the bus master 2012-04-27 09:51:09 -07:00
ssb ssb: fix init regression with SoCs 2012-01-06 14:13:48 -08:00
staging drivers/staging/comedi/comedi_fops.c: add missing vfree 2012-06-01 15:12:54 +08:00
target tcm_fc: Resolve suspicious RCU usage warnings 2012-07-16 08:47:49 -07:00
tc
telephony
thermal
tty tty: Allow uart_register/unregister/register 2012-06-01 15:12:56 +08:00
uio
usb xhci: Avoid dead ports when CONFIG_USB_XHCI_HCD=n 2012-07-16 08:47:50 -07:00
uwb uwb: fix error handling 2012-04-27 09:51:06 -07:00
vhost vhost: don't forget to schedule() 2012-07-16 08:47:51 -07:00
video video:uvesafb: Fix oops that uvesafb try to execute NX-protected page 2012-04-22 16:21:24 -07:00
virtio virtio-pci: fix use after free 2011-11-21 14:31:14 -08:00
vlynq
w1 drivers/power/ds2780_battery.c: add a nolock function to w1 interface 2011-11-11 09:36:32 -08:00
watchdog watchdog: hpwdt: clean up set_memory_x call for 32 bit 2012-03-12 10:32:40 -07:00
xen xen/xenbus: Add quirk to deal with misconfigured backends. 2012-04-27 09:51:05 -07:00
zorro zorro: Defer device_register() until all devices have been identified 2011-10-03 11:40:57 -07:00
Kconfig
Makefile Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2011-05-28 12:35:15 -07:00