Alan Stern
feca7746d5
USB: EHCI: don't check DMA values in QH overlays
...
This patch (as1661) fixes a rather obscure bug in ehci-hcd. In a
couple of places, the driver compares the DMA address stored in a QH's
overlay region with the address of a particular qTD, in order to see
whether that qTD is the one currently being processed by the hardware.
(If it is then the status in the QH's overlay region is more
up-to-date than the status in the qTD, and if it isn't then the
overlay's value needs to be adjusted when the QH is added back to the
active schedule.)
However, DMA address in the overlay region isn't always valid. It
sometimes will contain a stale value, which may happen by coincidence
to be equal to a qTD's DMA address. Instead of checking the DMA
address, we should check whether the overlay region is active and
valid. The patch tests the ACTIVE bit in the overlay, and clears this
bit when the overlay becomes invalid (which happens when the
currently-executing URB is unlinked).
This is the second part of a fix for the regression reported at:
https://bugs.launchpad.net/bugs/1088733
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Joseph Salisbury <joseph.salisbury@canonical.com>
Reported-and-tested-by: Stephen Thirlwall <sdt@dr.com>
CC: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-03-05 08:45:33 +08:00
..
whci
USB: whci-hcd: fix NULL dereference on allocation failure
2012-08-15 15:17:39 -07:00
bcma-hcd.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
ehci-atmel.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ehci-dbg.c
USB: EHCI: remove unused Link Power Management code
2012-10-31 12:48:07 -07:00
ehci-fsl.c
USB: ehci-fsl: fix regression on mpc5121e
2013-01-11 16:01:07 -08:00
ehci-fsl.h
powerpc/usb: fix bug of CPU hang when missing USB PHY clock
2012-09-05 16:52:08 -07:00
ehci-grlib.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ehci-hcd.c
USB: EHCI: work around silicon bug in Intel's EHCI controllers
2013-03-05 08:45:33 +08:00
ehci-hub.c
USB: EHCI: fix timer bug affecting port resume
2013-01-25 15:06:01 -08:00
ehci-mem.c
USB: EHCI: use hrtimer for (s)iTD deallocation
2012-07-16 16:54:25 -07:00
ehci-msm.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
ehci-mv.c
usb: gadget: patches for v3.9 merge window
2013-01-25 09:08:05 -08:00
ehci-mxc.c
USB patches for 3.9-rc1
2013-02-21 12:20:00 -08:00
ehci-octeon.c
USB: EHCI: remove ehci_port_power() routine
2012-10-31 12:48:07 -07:00
ehci-omap.c
This is the MFD pull request for the 3.9 merge window.
2013-02-24 20:00:58 -08:00
ehci-orion.c
Revert "USB: EHCI: make ehci-orion a separate driver"
2013-02-20 10:25:44 -08:00
ehci-pci.c
USB: ehci: make debug port in-use detection functional again
2013-01-07 10:34:33 -08:00
ehci-platform.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ehci-pmcmsp.c
USB: EHCI: remove ehci_port_power() routine
2012-10-31 12:48:07 -07:00
ehci-ppc-of.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ehci-ps3.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
ehci-q.c
USB: EHCI: don't check DMA values in QH overlays
2013-03-05 08:45:33 +08:00
ehci-s5p.c
usb: xceiv: patches for v3.9 merge window
2013-01-25 09:09:46 -08:00
ehci-sched.c
USB: EHCI: fix bug in scheduling periodic split transfers
2013-01-31 10:14:48 +01:00
ehci-sead3.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ehci-sh.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ehci-spear.c
usb: remove use of __devinitdata
2012-11-21 13:27:16 -08:00
ehci-sysfs.c
USB: EHCI: Allow users to override 80% max periodic bandwidth
2011-07-08 14:51:33 -07:00
ehci-tegra.c
usb: host: tegra: make use of PHY pointer of HCD
2013-01-28 11:42:11 -07:00
ehci-tilegx.c
usb: add host support for the tilegx architecture
2012-07-18 16:40:29 -04:00
ehci-timer.c
USB: EHCI: revert "remove ASS/PSS polling timeout"
2013-02-26 13:22:38 -08:00
ehci-vt8500.c
Revert "USB: EHCI: make ehci-vt8500 a separate driver"
2013-02-20 10:26:31 -08:00
ehci-w90x900.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
ehci-xilinx-of.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ehci.h
USB: EHCI: add a name for the platform-private field
2013-01-22 09:22:13 -08:00
fhci-dbg.c
USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h
2012-06-26 19:42:11 -07:00
fhci-hcd.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
fhci-hub.c
USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h
2012-06-26 19:42:11 -07:00
fhci-mem.c
fhci-q.c
fhci-sched.c
USB: FHCI: use list_move_tail instead of list_del/list_add_tail
2012-09-05 16:55:18 -07:00
fhci-tds.c
USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h
2012-06-26 19:42:11 -07:00
fhci.h
USB: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h
2012-06-26 19:42:11 -07:00
fsl-mph-dr-of.c
USB: fsl-mph-dr-of: fix regression on mpc5121e
2013-01-11 16:01:06 -08:00
hwa-hc.c
Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
2012-01-09 12:09:47 -08:00
imx21-dbg.c
usb: Fix typo in imx21-dbg.c
2012-02-13 14:32:34 -08:00
imx21-hcd.c
usb: imx21-hcd: Include missing linux/module.h
2013-01-11 12:01:09 -08:00
imx21-hcd.h
ARM: imx: move platform_data definitions
2012-09-14 11:17:21 +02:00
isp116x-hcd.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
isp116x.h
isp1362-hcd.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
isp1362.h
isp1760-hcd.c
usb/isp1760: declare schedule_ptds() and errata2_function() static
2013-01-30 00:17:38 -05:00
isp1760-hcd.h
usb/isp1760: Allow to optionally trigger low-level chip reset via GPIOLIB.
2011-10-19 13:29:06 -07:00
isp1760-if.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
Kconfig
Revert "USB: EHCI: make ehci-vt8500 a separate driver"
2013-02-20 10:26:31 -08:00
Makefile
Revert "USB: EHCI: make ehci-vt8500 a separate driver"
2013-02-20 10:26:31 -08:00
octeon2-common.c
ohci-at91.c
ARM: arm-soc: Header cleanups
2012-12-12 11:45:16 -08:00
ohci-da8xx.c
ARM: davinci: move platform_data definitions
2012-09-14 11:16:54 +02:00
ohci-dbg.c
USB: ohci-dbg.c: remove dbg() usage
2012-05-01 21:33:37 -07:00
ohci-ep93xx.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
ohci-exynos.c
usb: xceiv: patches for v3.9 merge window
2013-01-25 09:09:46 -08:00
ohci-hcd.c
USB: OHCI: remove Alchemy OHCI platform driver.
2012-10-22 11:29:12 -07:00
ohci-hub.c
USB: ohci: merge ohci_finish_controller_resume with ohci_resume
2012-10-22 11:23:59 -07:00
ohci-jz4740.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
ohci-mem.c
ohci-nxp.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ohci-octeon.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
ohci-omap.c
ARM: arm-soc: Header cleanups
2012-12-12 11:45:16 -08:00
ohci-omap3.c
ARM: arm-soc: Header cleanups
2012-12-12 11:45:16 -08:00
ohci-pci.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
ohci-platform.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ohci-ppc-of.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
ohci-ps3.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
ohci-pxa27x.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
ohci-q.c
USB: ohci: set urb->hcpriv = NULL immediately, after free it
2013-01-11 16:03:38 -08:00
ohci-s3c2410.c
usb: Convert to devm_ioremap_resource()
2013-01-22 11:41:58 -08:00
ohci-sa1111.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
ohci-sm501.c
USB: OHCI: sm501: fix build failure after ohci_finish_controller_resume removal
2012-10-23 10:18:53 -07:00
ohci-spear.c
usb: remove use of __devinitdata
2012-11-21 13:27:16 -08:00
ohci-tilegx.c
usb: add host support for the tilegx architecture
2012-07-18 16:40:29 -04:00
ohci-tmio.c
usb: host: ohci-tmio: fix compile warning
2013-01-11 16:22:53 -08:00
ohci.h
USB: move transceiver from ehci_hcd and ohci_hcd to hcd and rename it as phy
2012-06-13 12:38:36 -07:00
oxu210hp-hcd.c
USB: oxu210hp-hcd.c: remove dbg() usage
2012-05-01 21:33:43 -07:00
oxu210hp.h
pci-quirks.c
usb: Prevent dead ports when xhci is not enabled
2013-01-24 09:56:19 -08:00
pci-quirks.h
usb: host: xhci: fix compilation error for non-PCI based stacks
2012-09-05 12:26:11 -07:00
r8a66597-hcd.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
r8a66597.h
usb/host/r8a66597: remove conditional compilation of clk code
2012-07-30 17:25:12 -07:00
sl811-hcd.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
sl811.h
sl811_cs.c
ssb-hcd.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
u132-hcd.c
usb: remove use of __devexit
2012-11-21 13:27:17 -08:00
uhci-debug.c
USB: uhci: beautify source code
2013-01-24 13:59:26 -08:00
uhci-grlib.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
uhci-hcd.c
Merge 3.8-rc5 into usb-next
2013-01-25 12:41:02 -08:00
uhci-hcd.h
USB: UHCI: remove unused definition
2013-01-24 13:42:09 -08:00
uhci-hub.c
Merge usb-linus branch into usb-next
2013-02-08 12:03:11 -08:00
uhci-pci.c
USB: UHCI: Move PCI specific functions to uhci-pci.c
2011-05-06 18:24:00 -07:00
uhci-platform.c
usb: remove use of __devinit
2012-11-21 13:27:16 -08:00
uhci-q.c
USB: uhci: check buffer length to avoid memory overflow
2013-01-24 13:42:09 -08:00
xhci-dbg.c
xhci: trivial: Remove assigned but unused slot_ctx.
2012-10-25 13:13:48 -07:00
xhci-ext-caps.h
xHCI: Correct the #define XHCI_LEGACY_DISABLE_SMI
2012-04-11 08:31:06 -07:00
xhci-hub.c
xhci: Avoid "dead ports", add roothub port polling.
2013-01-03 14:10:29 -08:00
xhci-mem.c
xhci: Handle HS bulk/ctrl endpoints that don't NAK.
2013-01-03 14:09:55 -08:00
xhci-pci.c
usb: host: xhci: move HC_STATE_SUSPENDED check to xhci_suspend()
2012-11-12 11:45:34 -08:00
xhci-plat.c
usb: host: xhci-plat: use ioremap_nocache
2012-09-05 12:07:19 -07:00
xhci-ring.c
Merge usb-linus branch into usb-next
2013-02-08 12:03:11 -08:00
xhci.c
xhci: Avoid "dead ports", add roothub port polling.
2013-01-03 14:10:29 -08:00
xhci.h
xhci: Avoid global symbol pollution with handshake.
2012-11-12 11:44:25 -08:00