android_kernel_xiaomi_sm8350/drivers/usb/host
Sarah Sharp 06df572909 USB: xhci: Fix command completion after a drop endpoint.
The xHCI driver issues a Configure Endpoint command for two reasons:
 - a new configuration or alternate interface setting is selected
 - a quirky Fresco Logic prototype requires the command after a Reset
   Endpoint command.
The xHCI driver only waits on the command in the first case.

When a configure endpoint command completes, the driver needs to know why
the command was generated.  When the driver only supported selecting an
initial configuration, the check was simple.  Unfortunately that check
doesn't work now that the driver supports alternate interfaces.  If an
endpoint must be dropped (because it's not in the new alternate setting)
and no new endpoints are added, the math involving
xhci_last_valid_endpoint() will assign -1 to an unsigned integer and cause
an out-of-bounds array access.

Move the check for the quirky hardware sooner and avoid the bad array
access.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-12-11 11:55:27 -08:00
..
whci USB: whci-hcd: correctly handle sg lists longer than QTD_MAX_XFER_SIZE. 2009-12-11 11:55:26 -08:00
ehci-atmel.c
ehci-au1xxx.c
ehci-dbg.c
ehci-fsl.c
ehci-fsl.h
ehci-hcd.c USB: EHCI: add native scatter-gather support 2009-12-11 11:55:19 -08:00
ehci-hub.c USB: ehci-hub: Remove redundant ehci->debug check 2009-12-11 11:55:13 -08:00
ehci-ixp4xx.c
ehci-mem.c
ehci-mxc.c USB: Add EHCI support for MX27 and MX31 based boards 2009-12-11 11:55:18 -08:00
ehci-omap.c USB: ehci-omap.c: introduce missing kfree 2009-12-11 11:55:27 -08:00
ehci-orion.c
ehci-pci.c USB: work around for EHCI with quirky periodic schedules 2009-11-30 16:43:16 -08:00
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c USB: EHCI: add native scatter-gather support 2009-12-11 11:55:19 -08:00
ehci-sched.c USB: ehci: Respect IST when scheduling new split iTDs. 2009-12-11 11:55:18 -08:00
ehci-w90x900.c
ehci-xilinx-of.c USB: Add support for Xilinx USB host controller 2009-12-11 11:55:13 -08:00
ehci.h USB: work around for EHCI with quirky periodic schedules 2009-11-30 16:43:16 -08:00
fhci-dbg.c
fhci-hcd.c
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
fhci-tds.c
fhci.h
hwa-hc.c
isp116x-hcd.c
isp116x.h
isp1362-hcd.c USB: isp1362: fix build warnings on 64-bit systems 2009-10-09 13:52:07 -07:00
isp1362.h USB: FIX bitfield istl_flip:1, make it unsigned. 2009-12-11 11:55:20 -08:00
isp1760-hcd.c
isp1760-hcd.h
isp1760-if.c
Kconfig USB: Add EHCI support for MX27 and MX31 based boards 2009-12-11 11:55:18 -08:00
Makefile
ohci-at91.c USB: modifications for at91sam9g10 2009-12-11 11:55:15 -08:00
ohci-au1xxx.c
ohci-dbg.c
ohci-ep93xx.c
ohci-hcd.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
ohci-hub.c
ohci-lh7a404.c
ohci-mem.c
ohci-omap.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
ohci-pci.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
ohci-pnx4008.c USB: Add missing static markers to ohci-pnx4008 2009-12-11 11:55:14 -08:00
ohci-pnx8550.c
ohci-ppc-of.c
ohci-ppc-soc.c
ohci-ps3.c
ohci-pxa27x.c
ohci-q.c USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
ohci-s3c2410.c
ohci-sa1111.c
ohci-sh.c
ohci-sm501.c
ohci-ssb.c
ohci-tmio.c
ohci.h USB: ohci: quirk AMD prefetch for USB 1.1 ISO transfer 2009-11-17 16:46:33 -08:00
oxu210hp-hcd.c
oxu210hp.h
pci-quirks.c Revert "USB: Work around BIOS bugs by quiescing USB controllers earlier" 2009-10-11 15:57:57 -07:00
pci-quirks.h
r8a66597-hcd.c USB: r8a66597: clean up. remove unneeded null checks 2009-12-11 11:55:22 -08:00
r8a66597.h
sl811_cs.c pcmcia: rework the irq_req_t typedef 2009-11-28 18:03:14 +01:00
sl811-hcd.c
sl811.h
u132-hcd.c
uhci-debug.c
uhci-hcd.c
uhci-hcd.h
uhci-hub.c
uhci-q.c
xhci-dbg.c
xhci-ext-caps.h
xhci-hcd.c USB: xhci: Make reverting an alt setting "unfailable". 2009-12-11 11:55:27 -08:00
xhci-hub.c
xhci-mem.c USB: xhci: Make reverting an alt setting "unfailable". 2009-12-11 11:55:27 -08:00
xhci-pci.c USB: make urb scatter-gather support more generic 2009-12-11 11:55:14 -08:00
xhci-ring.c USB: xhci: Fix command completion after a drop endpoint. 2009-12-11 11:55:27 -08:00
xhci.h USB: xhci: Make reverting an alt setting "unfailable". 2009-12-11 11:55:27 -08:00