Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74bb844a authored by Andiry Xu's avatar Andiry Xu Committed by Sarah Sharp
Browse files

xHCI: release spinlock when setup interrupt



Jiri Slaby reports spinlock is held while calling kmalloc(GFP_KERNEL)
and request_irq() in xhci_resume().

Release the spinlock when setup interrupt.

Reported-by: default avatarJiri Slaby <jirislaby@gmail.com>
Signed-off-by: default avatarAndiry Xu <andiry.xu@amd.com>
Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
parent 241b652f
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -714,6 +714,7 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
		return retval;
		return retval;
	}
	}


	spin_unlock_irq(&xhci->lock);
	/* Re-setup MSI-X */
	/* Re-setup MSI-X */
	if (hcd->irq)
	if (hcd->irq)
		free_irq(hcd->irq, hcd);
		free_irq(hcd->irq, hcd);
@@ -736,6 +737,7 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
		hcd->irq = pdev->irq;
		hcd->irq = pdev->irq;
	}
	}


	spin_lock_irq(&xhci->lock);
	/* step 4: set Run/Stop bit */
	/* step 4: set Run/Stop bit */
	command = xhci_readl(xhci, &xhci->op_regs->command);
	command = xhci_readl(xhci, &xhci->op_regs->command);
	command |= CMD_RUN;
	command |= CMD_RUN;