[PATCH 1/1] usb: xhci: fix return value of xhci_setup_device()

From: Lu Baolu
Date: Wed Sep 07 2016 - 02:23:58 EST


From: "Lu, Baolu" <baolu.lu@xxxxxxxxxxxxxxx>

xhci_setup_device() should return failure with correct error number
when xhci host has died, removed or halted.

Cc: stable@xxxxxxxxxxxxxxx # 4.3+
Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
---
drivers/usb/host/xhci.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 01d96c9..3e66e73 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -3785,8 +3785,10 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev,

mutex_lock(&xhci->mutex);

- if (xhci->xhc_state) /* dying, removing or halted */
+ if (xhci->xhc_state) { /* dying, removing or halted */
+ ret = -ESHUTDOWN;
goto out;
+ }

if (!udev->slot_id) {
xhci_dbg_trace(xhci, trace_xhci_dbg_address,
--
2.1.4