linux/drivers/usb/host
Mathias Nyman 284d205524 xhci: Fix oops happening after address device timeout
When a command times out, the command ring is first aborted,
and then stopped. If the command ring is empty when it is stopped
the stop event will point to next command which is not yet set.
xHCI tries to handle this next event often causing an oops.

Don't handle command completion events on stopped cmd ring if ring is
empty.

This patch should be backported to kernels as old as 3.7, that contain
the commit b92cc66c04 "xHCI: add aborting
command ring function"

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Reported-by: Giovanni <giovanni.nervi@yahoo.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@vger.kernel.org
2013-09-23 15:43:30 -07:00
..
whci wusbhc: disable suspend and resume on the root hub. 2013-06-06 12:14:38 -07:00
bcma-hcd.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
ehci-atmel.c ehci-atmel.c: prepare clk before calling enable 2013-06-24 16:21:52 -07:00
ehci-dbg.c ehci: remove duplicate debug_async_open() prototype in ehci-dbg.c 2013-08-30 12:02:08 -07:00
ehci-fsl.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-fsl.h
ehci-grlib.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-hcd.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-hub.c ehci: remove ehci_vdbg() verbose debugging statements 2013-08-30 12:02:07 -07:00
ehci-mem.c USB: EHCI: improve interrupt qh unlink 2013-08-12 11:43:48 -07:00
ehci-msm.c USB: EHCI: make ehci-msm a separate driver 2013-04-08 09:40:20 -07:00
ehci-mv.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-mxc.c usb: ehci-mxc: check for pdata before dereferencing 2013-08-23 10:46:03 -07:00
ehci-octeon.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-omap.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ehci-orion.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ehci-pci.c Intel xhci: refactor EHCI/xHCI port switching 2013-07-23 14:50:29 -07:00
ehci-platform.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ehci-pmcmsp.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-ppc-of.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-ps3.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-q.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-s5p.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ehci-sched.c ehci: enable debugging code when CONFIG_DYNAMIC_DEBUG is set 2013-08-30 12:02:07 -07:00
ehci-sead3.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-sh.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-spear.c usb: host: ehci-spear: Remove redundant checks 2013-05-30 21:32:53 +09:00
ehci-sysfs.c
ehci-tegra.c usb: host: tegra: Tegra30 support 2013-08-12 13:29:54 -05:00
ehci-tilegx.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-timer.c USB: EHCI: improve interrupt qh unlink 2013-08-12 11:43:48 -07:00
ehci-w90x900.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci-xilinx-of.c Revert "USB: EHCI: support running URB giveback in tasklet context" 2013-09-17 09:36:10 -07:00
ehci.h ehci: enable debugging code when CONFIG_DYNAMIC_DEBUG is set 2013-08-30 12:02:07 -07:00
fhci-dbg.c
fhci-hcd.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c USB: FHCI: upgrade the isochronous API 2013-05-30 21:34:31 +09:00
fhci-tds.c
fhci.h USB: FHCI: upgrade the isochronous API 2013-05-30 21:34:31 +09:00
fotg210-hcd.c usb: host: Faraday fotg210-hcd driver 2013-07-29 11:15:39 -07:00
fotg210.h usb: host: Faraday fotg210-hcd driver 2013-07-29 11:15:39 -07:00
fsl-mph-dr-of.c usb: host: fsl-mph-dr-of: Staticize local symbols 2013-09-17 11:06:57 -05:00
fusbh200-hcd.c usb: host: fusbh200-hcd: rename two functions 2013-06-03 10:52:40 -07:00
fusbh200.h usb host: Faraday USB2.0 FUSBH200-HCD driver 2013-05-17 10:12:52 -07:00
hwa-hc.c HWA: avoid constant suspend and resume on the root hub 2013-08-12 15:41:09 -07:00
imx21-dbg.c
imx21-hcd.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
imx21-hcd.h
isp116x-hcd.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
isp116x.h USB: isp116x: remove dependency on CONFIG_USB_DEBUG 2013-07-23 16:35:17 -07:00
isp1362-hcd.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
isp1362.h USB: isp1362: move debug files from proc to debugfs 2013-07-24 14:43:05 -07:00
isp1760-hcd.c USB: remove remaining instances of USB_SUSPEND 2013-05-15 13:44:44 -04:00
isp1760-hcd.h
isp1760-if.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
Kconfig Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
Makefile xhci: add traces for debug messages in xhci_address_device() 2013-08-13 16:05:38 -07:00
octeon2-common.c
ohci-at91.c usb: ohci-at91: remove unnecessary dev_set_drvdata() 2013-08-27 21:36:46 -07:00
ohci-da8xx.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ohci-dbg.c
ohci-ep93xx.c usb: ohci-ep93xx: tidy up driver (*probe) and (*remove) 2013-07-26 13:54:29 -07:00
ohci-exynos.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ohci-hcd.c USB: ohci_usb warn "irq nobody cared" on shutdown 2013-07-26 13:55:21 -07:00
ohci-hub.c USB: OHCI: prepare to make ohci-hcd a library module 2013-05-30 21:36:03 +09:00
ohci-jz4740.c USB: ohci-jz4740: remove unnecessary platform_set_drvdata() 2013-05-16 17:47:17 -07:00
ohci-mem.c
ohci-nxp.c drivers/usb/host: remove leftover release_mem_region 2013-05-30 21:32:52 +09:00
ohci-octeon.c usb: host: ohci-octeon: Remove redundant platform_set_drvdata() 2013-05-17 10:14:52 -07:00
ohci-omap3.c USB: host: Use usb_hcd_platform_shutdown() wherever possible 2013-07-25 12:01:12 -07:00
ohci-omap.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ohci-pci.c USB patches for 3.12-rc1 2013-09-03 11:35:32 -07:00
ohci-platform.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ohci-ppc-of.c USB: host: Use usb_hcd_platform_shutdown() wherever possible 2013-07-25 12:01:12 -07:00
ohci-ps3.c usb: remove use of __devinit 2012-11-21 13:27:16 -08:00
ohci-pxa27x.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ohci-q.c USB: OHCI: Generic changes to make ohci-pci a separate driver 2013-05-30 21:36:03 +09:00
ohci-s3c2410.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ohci-sa1111.c usb: remove use of __devinit 2012-11-21 13:27:16 -08:00
ohci-sm501.c USB: ohci-sm501: remove unnecessary platform_set_drvdata() 2013-05-16 17:47:18 -07:00
ohci-spear.c Merge 3.10-rc3 into usb-next 2013-05-27 11:00:52 +09:00
ohci-tilegx.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
ohci-tmio.c usb: host: ohci-tmio: Remove redundant platform_set_drvdata() 2013-05-17 10:14:53 -07:00
ohci.h USB: OHCI: add a name for the platform-private field 2013-06-03 11:03:18 -07:00
oxu210hp-hcd.c Merge 3.10-rc3 into usb-next 2013-05-27 11:00:52 +09:00
oxu210hp.h
pci-quirks.c Intel xhci: refactor EHCI/xHCI port switching 2013-07-23 14:50:29 -07:00
pci-quirks.h Merge 3.11-rc3 into usb-next 2013-07-29 07:43:16 -07:00
r8a66597-hcd.c usb: r8a66597-hcd: use platform_{get,set}_drvdata() 2013-08-30 11:11:35 -07:00
r8a66597.h
sl811_cs.c drivers/usb: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:26:38 -07:00
sl811-hcd.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
sl811.h USB: sl811: move debug files from proc to debugfs 2013-07-24 14:43:05 -07:00
ssb-hcd.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
u132-hcd.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
uhci-debug.c USB: uhci: beautify source code 2013-01-24 13:59:26 -08:00
uhci-grlib.c USB: host: use platform_{get,set}_drvdata() 2013-05-30 21:32:54 +09: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 USB: UHCI: fix for suspend of virtual HP controller 2013-05-15 13:41:40 -04:00
uhci-pci.c
uhci-platform.c USB: host: use platform_{get,set}_drvdata() 2013-05-30 21:32:54 +09:00
uhci-q.c USB: fix latency in uhci-hcd and ohci-hcd 2013-05-15 13:42:45 -04:00
xhci-dbg.c xhci: add traces for debug messages in xhci_address_device() 2013-08-13 16:05:38 -07:00
xhci-ext-caps.h xhci: fix port BESL LPM capability checking 2013-08-27 08:54:42 -07:00
xhci-hub.c xhci: add trace for debug messages related to quirks 2013-08-13 16:05:41 -07:00
xhci-mem.c xhci: Step 1 to fix usb-linus and usb-next. 2013-08-15 18:00:46 -07:00
xhci-pci.c xhci: add trace for debug messages related to quirks 2013-08-13 16:05:41 -07:00
xhci-plat.c xhci: Step 1 to fix usb-linus and usb-next. 2013-08-15 18:00:46 -07:00
xhci-ring.c xhci: Fix oops happening after address device timeout 2013-09-23 15:43:30 -07:00
xhci-trace.c xhci: add traces for debug messages in xhci_address_device() 2013-08-13 16:05:38 -07:00
xhci-trace.h xhci: trace debug statements related to ring expansion 2013-08-13 21:14:44 -07:00
xhci.c xhci: Fix warning introduced by disabling runtime PM. 2013-08-28 10:55:47 -07:00
xhci.h xhci: Step 1 to fix usb-linus and usb-next. 2013-08-15 18:00:46 -07:00