android_kernel_xiaomi_sm8350/drivers/usb/host
Paul Mundt 2c940db250 usb: r8a66597-hcd: Fix up spinlock recursion in root hub polling.
The current root hub polling code exhibits a spinlock recursion on the
private controller lock. r8a66597_root_hub_control() is called from
r8a66597_timer() which grabs the lock and disables IRQs. The following
chain emerges:

  r8a66597_timer() <-- lock taken
    r8a66597_root_hub_control()
      r8a66597_check_syssts()
        usb_hcd_poll_rh_status() <-- acquires the same lock
	/* insert death here */

The entire chain requires IRQs to be disabled, so we just unlock and
relock around the call to usb_hcd_poll_rh_status() while leaving the
IRQ state unchanged.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Acked-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
2010-02-05 11:53:28 +09: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 const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
ehci-dbg.c
ehci-fsl.c
ehci-fsl.h
ehci-hcd.c USB: add missing delay during remote wakeup 2010-01-20 15:24:34 -08:00
ehci-hub.c USB: EHCI & UHCI: fix race between root-hub suspend and port resume 2010-01-20 15:24:34 -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: replace mach header with plat 2009-12-16 12:44:04 -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: fix handling of unusual interrupt intervals 2010-01-20 15:24:34 -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 USB: FHCI: avoid NULL pointer dereference 2010-01-20 15:24:35 -08:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c kfifo: move struct kfifo in place 2009-12-22 14:17:55 -08:00
fhci-tds.c kfifo: move struct kfifo in place 2009-12-22 14:17:55 -08:00
fhci.h kfifo: rename kfifo_put... into kfifo_in... and kfifo_get... into kfifo_out... 2009-12-22 14:17:56 -08:00
hwa-hc.c
isp116x-hcd.c
isp116x.h
isp1362-hcd.c USB: isp1362: fix build failure on ARM systems via irq_flags cleanup 2010-01-20 15:24:36 -08:00
isp1362.h USB: FIX bitfield istl_flip:1, make it unsigned. 2009-12-11 11:55:20 -08:00
isp1760-hcd.c USB: Fix level of isp1760 Reloading ptd error message 2010-01-20 15:24:35 -08:00
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 const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
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 const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
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-hcd: Fix up spinlock recursion in root hub polling. 2010-02-05 11:53:28 +09: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 USB: EHCI & UHCI: fix race between root-hub suspend and port resume 2010-01-20 15:24:34 -08:00
uhci-hcd.h
uhci-hub.c USB: add missing delay during remote wakeup 2010-01-20 15:24:34 -08:00
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