summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci.c
diff options
context:
space:
mode:
authorLu Baolu <baolu.lu@linux.intel.com>2017-10-05 11:21:43 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-10-05 11:01:58 +0200
commitdcabc76fa9361186e6b88c30a68db8fa9d5b4a1c (patch)
tree9e46fb415ea7e47d89a39d4b499f39367be6e671 /drivers/usb/host/xhci.c
parent11ec7588a10d4bc2e1e385ac565d2166d375fba1 (diff)
downloadblackbird-op-linux-dcabc76fa9361186e6b88c30a68db8fa9d5b4a1c.tar.gz
blackbird-op-linux-dcabc76fa9361186e6b88c30a68db8fa9d5b4a1c.zip
usb: xhci: Return error when host is dead in xhci_disable_slot()
xhci_disable_slot() is a helper for disabling a slot when a device goes away or recovers from error situations. Currently, it returns success when it sees a dead host. This is not the right way to go. It should return error and let the invoker know that disable slot command was failed due to a dead host. Fixes: f9e609b82479 ("usb: xhci: Add helper function xhci_disable_slot().") Cc: Guoqing Zhang <guoqing.zhang@intel.com> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/xhci.c')
-rw-r--r--drivers/usb/host/xhci.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 23378f33142f..cf10d7b5fd0a 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -3582,10 +3582,9 @@ int xhci_disable_slot(struct xhci_hcd *xhci, u32 slot_id)
state = readl(&xhci->op_regs->status);
if (state == 0xffffffff || (xhci->xhc_state & XHCI_STATE_DYING) ||
(xhci->xhc_state & XHCI_STATE_HALTED)) {
- xhci_free_virt_device(xhci, slot_id);
spin_unlock_irqrestore(&xhci->lock, flags);
kfree(command);
- return ret;
+ return -ENODEV;
}
ret = xhci_queue_slot_control(xhci, command, TRB_DISABLE_SLOT,
OpenPOWER on IntegriCloud