On Tue, Oct 17, 2017 at 07:57:39PM -0500, wenxiong@xxxxxxxxxxxxxxxxxx wrote: > From: Wen Xiong <wenxiong@xxxxxxxxxxxxxxxxxx> > > > We saw "Host halt failed, -110" error when rebooting system/ > shutdowning system/kexec constantly. > > This patch called usb_disconnect() before calling xhci_halt(). > usb_disconnect()disconnect the parent and all of its children, > clean up hardware state and make sure that hardware is ready > to be halted down. > > Rebooting. > [18648.996035] sd 0:2:1:0: [sdb] Synchronizing SCSI cache > [18678.831197] mpt3sas_cm1: sending message unit reset !! > [18678.832774] mpt3sas_cm1: message unit reset: SUCCESS > [18683.900798] mpt3sas_cm0: sending message unit reset !! > [18683.902370] mpt3sas_cm0: message unit reset: SUCCESS > [18693.921103] xhci_hcd 0005:01:00.0: Host halt failed, -110 > [18693.924483] reboot: Restarting system > [18861.282906007,5] OPAL: Reboot request... > > Signed-off-by: Wen Xiong <wenxiong@xxxxxxxxxxxxxxxxxx> > > Thanks, > Wendy > > --- > drivers/usb/host/xhci.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c > index ee198ea..67fdb0f 100644 > --- a/drivers/usb/host/xhci.c > +++ b/drivers/usb/host/xhci.c > @@ -709,10 +709,17 @@ static void xhci_stop(struct usb_hcd *hcd) > static void xhci_shutdown(struct usb_hcd *hcd) > { > struct xhci_hcd *xhci = hcd_to_xhci(hcd); > + struct usb_device *rhdev = hcd->self.root_hub; > + > + dev_info(hcd->self.controller, "remove, state %x\n", hcd->state); Debugging code like this is not needed :) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html