linux-uconsole/drivers
Pavankumar Kondeti ebf16a5b74 EHCI: Update qTD next pointer in QH overlay region during unlink
commit 3d037774b4 upstream.

There is a possibility of QH overlay region having reference to a stale
qTD pointer during unlink.

Consider an endpoint having two pending qTD before unlink process begins.
The endpoint's QH queue looks like this.

qTD1 --> qTD2 --> Dummy

To unlink qTD2, QH is removed from asynchronous list and Asynchronous
Advance Doorbell is programmed.  The qTD1's next qTD pointer is set to
qTD2'2 next qTD pointer and qTD2 is retired upon controller's doorbell
interrupt.  If QH's current qTD pointer points to qTD1, transfer overlay
region still have reference to qTD2. But qtD2 is just unlinked and freed.
This may cause EHCI system error.  Fix this by updating qTD next pointer
in QH overlay region with the qTD next pointer of the current qTD.

Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-02 09:47:38 -07:00
..
accessibility
acpi ACPI: export symbol acpi_get_table_with_size 2012-09-14 10:00:39 -07:00
amba
ata ahci: Add alternate identifier for the 88SE9172 2012-10-02 09:47:25 -07:00
atm solos-pci: Fix DMA support 2012-06-10 00:32:58 +09:00
auxdisplay
base mm: memory hotplug: Check if pages are correctly reserved on a per-section basis 2012-08-01 12:26:55 -07:00
bcma
block cciss: fix handling of protocol error 2012-10-02 09:47:23 -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 random: mix in architectural randomness in extract_buf() 2012-08-15 12:04:29 -07:00
clk
clocksource
connector
cpufreq cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU 2012-10-02 09:47:22 -07:00
cpuidle
crypto crypto: mv_cesa requires on CRYPTO_HASH to build 2012-05-21 09:40:03 -07:00
dca
dio
dma dmaengine: at_hdmac: check that each sg data length is non-null 2012-10-02 09:47:37 -07:00
edac x86: Simplify code by removing a !SMP #ifdefs from 'struct cpuinfo_x86' 2012-08-15 12:04:09 -07:00
eisa
firewire firewire: ohci: fix too-early completion of IR multichannel buffers 2012-04-02 09:27:13 -07:00
firmware dmi: Feed DMI table to /dev/random driver 2012-08-15 12:04:29 -07:00
gpio pch_gpio: Support new device LAPIS Semiconductor ML7831 IOH 2012-05-21 09:40:05 -07:00
gpu drm/vmwgfx: add MODULE_DEVICE_TABLE so vmwgfx loads at boot 2012-09-14 10:00:51 -07:00
hid HID: add more hotkeys in Asus AIO keyboards 2012-04-02 09:27:12 -07:00
hwmon hwmon: (ads7871) Add 'name' sysfs attribute 2012-10-02 09:47:26 -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 IB/srp: Fix a race condition 2012-08-26 15:12:13 -07:00
input Input: i8042 - disable mux on Toshiba C850D 2012-10-02 09:47:27 -07:00
isdn isdnloop: fix and simplify isdnloop_init() 2012-10-02 09:47:05 -07: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: Don't truncate size at 4TB for RAID0 and Linear 2012-10-02 09:47:25 -07:00
media USB: smsusb: remove __devinit* from the struct usb_device_id table 2012-09-14 10:00:40 -07:00
memstick
message
mfd ARM: pxa: remove irq_to_gpio from ezx-pcap driver 2012-08-15 12:04:30 -07:00
misc pch_phub: Improve ADE(Address Decode Enable) control 2012-04-22 16:21:42 -07:00
mmc mmc: sdhci-esdhc: break out early if clock is 0 2012-10-02 09:47:24 -07:00
mtd mtd: nandsim: don't open code a do_div helper 2012-07-19 08:58:20 -07:00
net rt2x00: Fix rfkill polling prior to interface start. 2012-10-02 09:47:37 -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 hibernation on ASUS computers 2012-09-14 10:00:39 -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-twl.c: ensure all interrupts are disabled during probe 2012-10-02 09:47:25 -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: hpsa: fix handling of protocol error 2012-10-02 09:47:27 -07:00
sfi
sh
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 staging: comedi: das08: Correct AO output for das08jr-16-ao 2012-10-02 09:47:24 -07:00
target target: Fix ->data_length re-assignment bug with SCSI overflow 2012-10-02 09:47:23 -07:00
tc
telephony
thermal
tty tty: Allow uart_register/unregister/register 2012-06-01 15:12:56 +08:00
uio
usb EHCI: Update qTD next pointer in QH overlay region during unlink 2012-10-02 09:47:38 -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 hpwdt: Fix kdump issue in hpwdt 2012-10-02 09:47:27 -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