linux-stable/drivers/usb/host
Matthew Garrett e955a1cd08 xhci: Make handover code more robust
My test platform (Intel DX79SI) boots reliably under BIOS, but frequently
crashes when booting via UEFI. I finally tracked this down to the xhci
handoff code. It seems that reads from the device occasionally just return
0xff, resulting in xhci_find_next_cap_offset generating a value that's
larger than the resource region. We then oops when attempting to read the
value. Sanity checking that value lets us avoid the crash.

I've no idea what's causing the underlying problem, and xhci still doesn't
actually *work* even with this, but the machine at least boots which will
probably make further debugging easier.

This should be backported to kernels as old as 2.6.31, that contain the
commit 66d4eadd8d "USB: xhci: BIOS handoff
and HW initialization."

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@vger.kernel.org
2012-09-05 12:07:17 -07:00
..
whci
alchemy-common.c
bcma-hcd.c usb/bcma: Add missing #include <linux/slab.h> 2012-04-23 13:22:00 -07:00
ehci-atmel.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-au1xxx.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-cns3xxx.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-dbg.c USB: EHCI: add new root-hub state: STOPPING 2012-07-16 16:50:14 -07:00
ehci-fsl.c USB: ehci-fsl: Update ifdef check to work on 64-bit ppc 2012-07-16 17:11:12 -07:00
ehci-fsl.h fsl/usb: Add controller version based ULPI and UTMI phy support 2012-04-18 13:46:42 -07:00
ehci-grlib.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-hcd.c USB patches for 3.6-rc1 2012-07-26 10:23:47 -07:00
ehci-hub.c USB: EHCI: resolve some unlikely races 2012-07-16 16:56:48 -07:00
ehci-ixp4xx.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-lpm.c
ehci-ls1x.c USB: Add EHCI bus glue for Loongson1x SoCs (UPDATED) 2012-01-24 15:28:02 -08:00
ehci-mem.c USB: EHCI: use hrtimer for (s)iTD deallocation 2012-07-16 16:54:25 -07:00
ehci-msm.c EHCI: centralize controller suspend/resume 2012-07-09 08:54:18 -07:00
ehci-mv.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-mxc.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-octeon.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-omap.c OMAP: USB : Fix the EHCI enumeration and core retention issue 2012-08-10 11:49:12 -07:00
ehci-orion.c ARM: SoC fixes 2012-07-26 20:29:52 -07:00
ehci-pci.c USB: EHCI: use hrtimer for the periodic schedule 2012-07-16 16:53:16 -07:00
ehci-platform.c EHCI: centralize controller suspend/resume 2012-07-09 08:54:18 -07:00
ehci-pmcmsp.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-ppc-of.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-ps3.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-q.c USB: EHCI: use hrtimer for the I/O watchdog 2012-07-16 16:56:47 -07:00
ehci-s5p.c USB: ehci-s5p: Add vbus setup function to the s5p ehci glue layer 2012-07-17 10:48:29 -07:00
ehci-sched.c USB: EHCI: simplify isochronous scanning 2012-07-16 16:56:47 -07:00
ehci-sead3.c usb: host: mips: sead3: Update for EHCI register structure. 2012-08-10 11:57:37 -07:00
ehci-sh.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-spear.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-sysfs.c
ehci-tegra.c usb: host: tegra: fix warning messages in ehci_remove 2012-08-10 11:57:37 -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: use hrtimer for the I/O watchdog 2012-07-16 16:56:47 -07:00
ehci-vt8500.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-w90x900.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-xilinx-of.c EHCI: centralize controller initialization 2012-07-09 13:35:05 -07:00
ehci-xls.c usb: host: tegra: pass correct pointer in ehci_setup() 2012-07-16 17:13:39 -07:00
ehci.h USB: EHCI: resolve some unlikely races 2012-07-16 16:56:48 -07: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: FHCI: Reusing QUICC Engine USB Controller registers from immap_qe.h 2012-06-26 19:42:11 -07: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: Reusing QUICC Engine USB Controller registers from immap_qe.h 2012-06-26 19:42:11 -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 fsl/usb: Add controller version based ULPI and UTMI phy support 2012-04-18 13:46:42 -07:00
hwa-hc.c
imx21-dbg.c usb: Fix typo in imx21-dbg.c 2012-02-13 14:32:34 -08:00
imx21-hcd.c usb: imx21-hcd.c: Use clk_prepare_enable/clk_disable_unprepare 2012-06-12 13:31:03 +03:00
imx21-hcd.h
isp116x-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
isp116x.h
isp1362-hcd.c USB: isp1362-hcd.c: usb message always saved in case of underrun 2012-08-10 11:49:13 -07:00
isp1362.h
isp1760-hcd.c isp1760-hcd: fix possible memory leak if urb could not be enqueued 2012-04-18 13:51:19 -07:00
isp1760-hcd.h
isp1760-if.c isp1760-if: make module unloads correctly 2012-04-18 13:50:44 -07:00
Kconfig USB patches for 3.6-rc1 2012-07-26 10:23:47 -07:00
Makefile USB: Add driver for the ssb bus 2012-04-18 13:43:30 -07:00
octeon2-common.c
ohci-at91.c USB: ohci-at91: add a reset function to fix race condition 2012-05-09 15:22:27 -07:00
ohci-au1xxx.c usb: [MIPS] fix unresolved err() reference in host/ohci-au1xxx.c 2012-05-01 18:36:09 -04:00
ohci-cns3xxx.c USB: ohci-cns3xxx.c: remove err() usage 2012-04-27 11:24:40 -07:00
ohci-da8xx.c ohci-da8xx: set MODULE_ALIAS to allow autoloading 2012-05-08 09:26:10 -07:00
ohci-dbg.c USB: ohci-dbg.c: remove dbg() usage 2012-05-01 21:33:37 -07:00
ohci-ep93xx.c USB: ohci-ep93xx.c: remove dbg() usage 2012-05-01 21:33:38 -07:00
ohci-exynos.c USB: ohci-exynos: Add support for device tree 2012-07-16 17:16:17 -07:00
ohci-hcd.c usb: add host support for the tilegx architecture 2012-07-18 16:40:29 -04:00
ohci-hub.c USB: ohci-hub: Mark ohci_finish_controller_resume() as __maybe_unused 2012-06-13 17:26:11 -07:00
ohci-jz4740.c
ohci-mem.c
ohci-nxp.c USB: ohci-nxp: add usbd and otg clock initialization 2012-06-20 16:20:24 -07:00
ohci-octeon.c
ohci-omap.c usb/ohci-omap: remove unused variable 2012-08-08 21:13:01 +02:00
ohci-omap3.c
ohci-pci.c usb: add support for STA2X11 host driver 2012-01-24 14:15:37 -08:00
ohci-platform.c usb: Fix various typo within usb 2012-04-18 13:57:26 -07:00
ohci-pnx8550.c usb: [MIPS] fix unresolved err() reference in host/ohci-pnx8550.c 2012-05-01 18:36:09 -04:00
ohci-ppc-of.c USB: ohci-ppc-of.c: remove err() usage 2012-04-27 11:24:42 -07:00
ohci-ppc-soc.c USB: ohci-ppc-soc.c: remove err() usage 2012-04-27 11:24:42 -07:00
ohci-ps3.c USB: ohci-ps3.c: remove err() usage 2012-04-27 11:24:43 -07:00
ohci-pxa27x.c usb: [ARM] fix unresolved err() reference in host/ohci-pxa27x.c 2012-05-01 18:36:09 -04:00
ohci-q.c
ohci-s3c2410.c USB: ohci-s3c2410.c: remove err() usage 2012-04-27 11:24:43 -07:00
ohci-sa1111.c USB: ohci-sa1111.c: remove dbg() usage 2012-05-01 21:33:39 -07:00
ohci-sh.c USB: ohci-sh.c: remove err() usage 2012-04-27 11:24:44 -07:00
ohci-sm501.c
ohci-spear.c USB: ehci: ohci: Add clk_{un}prepare() support 2012-04-18 14:33:43 -07:00
ohci-tilegx.c usb: add host support for the tilegx architecture 2012-07-18 16:40:29 -04:00
ohci-tmio.c USB: ohci-tmio.c: remove err() usage 2012-04-27 11:24:44 -07:00
ohci-xls.c USB: ohci-xls.c: remove err() usage 2012-04-27 11:24:45 -07: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 xhci: Make handover code more robust 2012-09-05 12:07:17 -07:00
pci-quirks.h xhci: Switch PPT ports to EHCI on shutdown. 2012-08-09 12:43:28 -07:00
r8a66597-hcd.c usb/host/r8a66597: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
r8a66597.h usb/host/r8a66597: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
sl811-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
sl811.h
sl811_cs.c
ssb-hcd.c usb/ssb: Add missing #include <linux/slab.h> 2012-04-23 13:22:00 -07:00
u132-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
uhci-debug.c
uhci-grlib.c
uhci-hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
uhci-hcd.h
uhci-hub.c UHCI: hub_status_data should indicate if ports are resuming 2012-04-09 15:43:21 -07:00
uhci-pci.c
uhci-q.c
xhci-dbg.c xHCI: correct to print the true HSEE of USBCMD 2012-04-10 15:21:52 -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 USB: Link PM fixes and Latency Tolerance Messaging 2012-07-16 16:58:30 -07:00
xhci-mem.c xhci: Don't free endpoints in xhci_mem_cleanup() 2012-06-13 16:37:30 -07:00
xhci-pci.c xhci: Switch PPT ports to EHCI on shutdown. 2012-08-09 12:43:28 -07:00
xhci-plat.c usb: host: xhci: add platform driver support 2012-03-13 10:30:59 -07:00
xhci-ring.c xhci: Fix bug after deq ptr set to link TRB. 2012-08-08 12:17:38 -07:00
xhci.c xhci: Fix a logical vs bitwise AND bug 2012-09-05 12:07:00 -07:00
xhci.h xhci: Switch PPT ports to EHCI on shutdown. 2012-08-09 12:43:28 -07:00