Skip to content

Commit

Permalink
usb: xhci: lock mutex on xhci_stop
Browse files Browse the repository at this point in the history
Else it races with xhci_setup_device

Signed-off-by: Roger Quadros <[email protected]>
Signed-off-by: Sekhar Nori <[email protected]>
  • Loading branch information
Roger Quadros authored and nsekhar committed Aug 27, 2015
1 parent 1d662b6 commit e546b06
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions drivers/usb/host/xhci.c
Original file line number Diff line number Diff line change
Expand Up @@ -677,8 +677,11 @@ void xhci_stop(struct usb_hcd *hcd)
u32 temp;
struct xhci_hcd *xhci = hcd_to_xhci(hcd);

mutex_lock(&xhci->mutex);

if (!usb_hcd_is_primary_hcd(hcd)) {
xhci_only_stop_hcd(xhci->shared_hcd);
mutex_unlock(&xhci->mutex);
return;
}

Expand Down Expand Up @@ -717,6 +720,7 @@ void xhci_stop(struct usb_hcd *hcd)
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"xhci_stop completed - status = %x",
readl(&xhci->op_regs->status));
mutex_unlock(&xhci->mutex);
}

/*
Expand Down

0 comments on commit e546b06

Please sign in to comment.