usb: xhci: Return error when host is dead in xhci_disable_slot()
[ Upstream commit dcabc76fa9361186e6b88c30a68db8fa9d5b4a1c ] 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> Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8876436aa9
commit
9e99614575
@ -3583,10 +3583,9 @@ int xhci_disable_slot(struct xhci_hcd *xhci, struct xhci_command *command,
|
||||
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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user