mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 21:22:09 -04:00
xhci: Fix NULL pointer dereference with xhci_irq() for shared_hcd
Commit ("f068090426 xhci: Fix leaking USB3 shared_hcd
at xhci removal") sets xhci_shared_hcd to NULL without
stopping xhci host. This results into a race condition
where shared_hcd (super speed roothub) related interrupts
are being handled with xhci_irq happens when the
xhci_plat_remove is called and shared_hcd is set to NULL.
Fix this by setting the shared_hcd to NULL only after the
controller is halted and no interrupts are generated.
Change-Id: I2c7e460c171eacbf26d0bf7185d563ddb9efb504
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
This commit is contained in:
parent
49eff519b8
commit
5bc4b708d1
1 changed files with 1 additions and 1 deletions
|
|
@ -374,10 +374,10 @@ static int xhci_plat_remove(struct platform_device *dev)
|
|||
xhci->xhc_state |= XHCI_STATE_REMOVING;
|
||||
|
||||
usb_remove_hcd(shared_hcd);
|
||||
xhci->shared_hcd = NULL;
|
||||
usb_phy_shutdown(hcd->usb_phy);
|
||||
|
||||
usb_remove_hcd(hcd);
|
||||
xhci->shared_hcd = NULL;
|
||||
usb_put_hcd(shared_hcd);
|
||||
|
||||
clk_disable_unprepare(clk);
|
||||
|
|
|
|||
Loading…
Reference in a new issue