summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorSarah Sharp2009-07-27 21:03:50 +0200
committerGreg Kroah-Hartman2009-07-28 23:31:12 +0200
commitd3512f63494678dc58e44a20c56278718fd58969 (patch)
treecee686068d51aa2e6c581b0d16cd9032a3119dc1 /drivers/usb
parentUSB: xhci: Make debugging more verbose. (diff)
downloadkernel-qcow2-linux-d3512f63494678dc58e44a20c56278718fd58969.tar.gz
kernel-qcow2-linux-d3512f63494678dc58e44a20c56278718fd58969.tar.xz
kernel-qcow2-linux-d3512f63494678dc58e44a20c56278718fd58969.zip
USB: xhci: Don't oops if the host doesn't halt.
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/xhci-hcd.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-hcd.c b/drivers/usb/host/xhci-hcd.c
index 764995fd59ef..8c3a074a95cd 100644
--- a/drivers/usb/host/xhci-hcd.c
+++ b/drivers/usb/host/xhci-hcd.c
@@ -103,7 +103,10 @@ int xhci_reset(struct xhci_hcd *xhci)
u32 state;
state = xhci_readl(xhci, &xhci->op_regs->status);
- BUG_ON((state & STS_HALT) == 0);
+ if ((state & STS_HALT) == 0) {
+ xhci_warn(xhci, "Host controller not halted, aborting reset.\n");
+ return 0;
+ }
xhci_dbg(xhci, "// Reset the HC\n");
command = xhci_readl(xhci, &xhci->op_regs->command);