diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index f560c4100e2fa3d4a680c53e80f133038cb7b12a..5fe24196c88bb583da08257a1d1a573c8e7a8c79 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -146,7 +146,8 @@ static int xhci_start(struct xhci_hcd *xhci)
 				"waited %u microseconds.\n",
 				XHCI_MAX_HALT_USEC);
 	if (!ret)
-		xhci->xhc_state &= ~XHCI_STATE_HALTED;
+		xhci->xhc_state &= ~(XHCI_STATE_HALTED | XHCI_STATE_DYING);
+
 	return ret;
 }