WSL2-Linux-Kernel/drivers/usb/host
Joe Lawrence 89140fdaf1 xhci: harden xhci_find_next_ext_cap against device removal
xhci_find_next_ext_cap doesn't check for PCI hotplug removal and may use
the PCI master abort bit pattern (~0) to calculate a new PCI address
offset to read/write.  The has lead to reproducable crashes when testing
surprise removal during device initialization on a Stratus platform, at
least after commit d5ddcdf4d6 ("xhci: rework xhci extended capability
list parsing functions").

The crash is repeatable on a Stratus platform when injecting hardware
faults to induce xHCI host controller hotplug during driver
initialization.  If a PCI read in xhci_find_next_ext_cap returns the
master abort pattern, quirk_usb_handoff_xhci may start using a bogus
ext_cap_offset to start searching more bogus PCI addresses.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-02-04 17:00:10 -08:00
..
whci Merge 4.4-rc5 into usb-next as we want those fixes here for testing 2015-12-13 19:20:27 -08:00
Kconfig ARM: SoC support for Tegra platforms for v4.5 2016-01-22 17:30:52 -08:00
Makefile xhci: mediatek: support MTK xHCI host controller 2015-12-01 10:45:51 -08:00
bcma-hcd.c USB: bcma: switch to GPIO descriptor for power control 2015-12-01 14:48:26 -08:00
ehci-atmel.c
ehci-dbg.c USB: EHCI: enhance "async" debugfs output 2015-12-01 10:44:19 -08:00
ehci-exynos.c
ehci-fsl.c drivers: usb: fsl: Workaround for USB erratum-A005275 2015-08-14 16:50:36 -07:00
ehci-fsl.h drivers: usb: fsl: Define usb control register mask for w1c bits 2015-07-22 16:44:35 -07:00
ehci-grlib.c
ehci-hcd.c usb: ehci: ohci: fix bool assignments 2015-12-04 08:29:54 -08:00
ehci-hub.c drivers: usb: fsl: Workaround for USB erratum-A005275 2015-08-14 16:50:36 -07:00
ehci-mem.c USB-EHCI: Delete unnecessary checks before the function call "dma_pool_destroy" 2015-12-01 14:26:33 -08:00
ehci-msm.c usb: host: ehci-msm: Use posted data writes on AHB 2015-12-01 14:57:12 -08:00
ehci-mv.c
ehci-mxc.c
ehci-omap.c
ehci-orion.c usb: ehci-orion: fix probe for !GENERIC_PHY 2015-10-04 10:45:08 +01:00
ehci-pci.c
ehci-platform.c USB: ehci-platform: Add ACPI bindings for the EHCI platform driver. 2015-10-04 10:47:13 +01:00
ehci-pmcmsp.c
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c USB: EHCI: warn on unexpectedly active QH 2015-12-01 10:44:19 -08:00
ehci-sched.c
ehci-sead3.c
ehci-sh.c
ehci-spear.c usb: host: ehci-spear: Fix module autoload for OF platform driver 2015-10-04 10:51:58 +01:00
ehci-st.c usb: host: ehci-st: Simplify return statement 2015-08-05 12:37:21 -07:00
ehci-sysfs.c usb: host: ehci-sys: delete useless bus_to_hcd conversion 2015-08-18 10:05:23 -07:00
ehci-tegra.c USB: ehci-tegra: fix inefficient copy of unaligned buffers 2015-05-08 01:43:44 +02:00
ehci-tilegx.c
ehci-timer.c
ehci-w90x900.c
ehci-xilinx-of.c
ehci.h USB: EHCI: warn on unexpectedly active QH 2015-12-01 10:44:19 -08:00
fhci-dbg.c
fhci-hcd.c QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
fhci-hub.c QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
fhci-mem.c
fhci-q.c
fhci-sched.c QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
fhci-tds.c usb: whci: fhci: remove comparison to bool 2015-12-04 08:25:58 -08:00
fhci.h QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
fotg210-hcd.c dma: remove external references to dma_supported 2015-11-09 15:11:24 -08:00
fotg210.h usb/host/fotg210: Fix coding style issues 2015-10-16 23:46:22 -07:00
fsl-mph-dr-of.c usb: host: fsl-mph-dr-of: Fix module autoload for OF platform driver 2015-10-04 10:51:58 +01:00
hwa-hc.c
imx21-dbg.c
imx21-hcd.c
imx21-hcd.h
isp116x-hcd.c USB: isp116x-hcd.c: move assignment out of if () block 2015-05-10 16:01:11 +02:00
isp116x.h
isp1362-hcd.c
isp1362.h
max3421-hcd.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
ohci-at91.c USB: host: ohci-at91: fix a crash in ohci_hcd_at91_overcurrent_irq 2015-12-04 08:19:55 -08:00
ohci-da8xx.c
ohci-dbg.c USB: ohci-dbg.c: move assignment out of if () block 2015-05-10 16:01:11 +02:00
ohci-exynos.c
ohci-hcd.c usb: ehci: ohci: fix bool assignments 2015-12-04 08:29:54 -08:00
ohci-hub.c
ohci-jz4740.c
ohci-mem.c
ohci-nxp.c usb: host: lpc32xx: don't unregister phy device 2015-10-24 19:53:53 -07:00
ohci-omap.c
ohci-omap3.c
ohci-pci.c
ohci-platform.c usb: ohci-platform: Use devm_of_phy_get_by_index 2015-05-11 21:42:25 +05:30
ohci-ppc-of.c
ohci-ps3.c
ohci-pxa27x.c usb: host: ohci-pxa27x: use of_property_read_bool() 2015-12-01 14:36:29 -08:00
ohci-q.c USB: OHCI: Fix race between ED unlink and URB submission 2015-07-22 14:46:50 -07:00
ohci-s3c2410.c
ohci-sa1111.c
ohci-sm501.c
ohci-spear.c usb: host: ohci-spear: Fix module autoload for OF platform driver 2015-10-04 10:51:58 +01:00
ohci-st.c
ohci-tilegx.c
ohci-tmio.c USB: OHCI: fix bad #define in ohci-tmio.c 2015-07-22 14:49:42 -07:00
ohci.h
oxu210hp-hcd.c usb: use BUG_ON() instead of BUG() 2015-12-04 08:25:58 -08:00
oxu210hp.h
pci-quirks.c xhci: rework xhci extended capability list parsing functions 2015-12-01 10:45:51 -08:00
pci-quirks.h
r8a66597-hcd.c
r8a66597.h
sl811-hcd.c
sl811.h
sl811_cs.c
ssb-hcd.c USB: ssb: use devm_kzalloc 2015-06-08 14:26:22 -07:00
u132-hcd.c usb: ehci: ohci: fix bool assignments 2015-12-04 08:29:54 -08:00
uhci-debug.c new helpers: no_seek_end_llseek{,_size}() 2015-12-23 10:41:31 -05:00
uhci-grlib.c
uhci-hcd.c
uhci-hcd.h
uhci-hub.c
uhci-pci.c
uhci-platform.c usb: host: uhci-platform: Fix module autoload for OF platform driver 2015-10-04 10:51:58 +01:00
uhci-q.c usb : replace dma_pool_alloc and memset with dma_pool_zalloc 2015-12-01 14:26:33 -08:00
xhci-dbg.c xhci: Read and parse new xhci 1.1 capability register 2015-10-04 10:34:17 +01:00
xhci-ext-caps.h xhci: harden xhci_find_next_ext_cap against device removal 2016-02-04 17:00:10 -08:00
xhci-hub.c Merge 4.4-rc5 into usb-next as we want those fixes here for testing 2015-12-13 19:20:27 -08:00
xhci-mem.c usb : replace dma_pool_alloc and memset with dma_pool_zalloc 2015-12-01 14:26:33 -08:00
xhci-mtk-sch.c usb: xhci-mtk: fix bpkts value of LS/HS periodic eps not behind TT 2016-02-03 14:01:47 -08:00
xhci-mtk.c usb: xhci-mtk: fix AHB bus hang up caused by roothubs polling 2016-02-03 14:01:47 -08:00
xhci-mtk.h xhci: mediatek: support MTK xHCI host controller 2015-12-01 10:45:51 -08:00
xhci-mvebu.c
xhci-mvebu.h
xhci-pci.c usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Broxton-M platforms 2016-02-03 14:01:47 -08:00
xhci-plat.c usb: host: xhci-plat: fix NULL pointer in probe for device tree case 2016-02-03 14:01:47 -08:00
xhci-plat.h usb: host: xhci-plat: add support for the R-Car H3 xHCI controllers 2015-12-01 10:45:51 -08:00
xhci-rcar.c usb: host: xhci-plat: add support for the R-Car H3 xHCI controllers 2015-12-01 10:45:51 -08:00
xhci-rcar.h usb: host: xhci-plat: add support for the R-Car H3 xHCI controllers 2015-12-01 10:45:51 -08:00
xhci-ring.c Revert "xhci: don't finish a TD if we get a short-transfer event mid TD" 2016-02-03 13:55:42 -08:00
xhci-trace.c
xhci-trace.h
xhci.c xhci: Fix list corruption in urb dequeue at host removal 2016-02-03 14:01:47 -08:00
xhci.h usb: xhci: add a quirk bit for ssic port unused 2016-02-03 14:01:47 -08:00