Message ID | bd67da4ddf3b294066665f223329376f@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Apr 17, 2018 at 11:32:42AM +0800, leiwan@codeaurora.org wrote: > > xhci-plat Shutdown callback should check HCD_FLAG_HW_ACCESSIBLE > before accessing any register. This should avoid hung with access > controllers which support runtime suspend > > This can fix for issue of https://patchwork.kernel.org/patch/10339317/ > corresponding upload in CAF: > https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?h=LV.HB.1.1.5-03810-8x96.0&id=a7a5307ee04ad349d365ad50f304605a9cd9bd0a > > full patch refer attachment. > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c > index 9b27798..bdf914d 100644 > --- a/drivers/usb/host/xhci.c > +++ b/drivers/usb/host/xhci.c > @@ -702,6 +702,10 @@ static void xhci_shutdown(struct usb_hcd *hcd) > usb_disable_xhci_ports(to_pci_dev(hcd->self.sysdev)); > > spin_lock_irq(&xhci->lock); > + if (!HCD_HW_ACCESSIBLE(hcd)) { > + spin_unlock_irq(&xhci->lock); > + return; > + } > xhci_halt(xhci); > /* Workaround for spurious wakeups at shutdown with HSW */ > if (xhci->quirks & XHCI_SPURIOUS_WAKEUP) > From 9b65acb64f1ad87d115fa147c9e947fb3d37471c Mon Sep 17 00:00:00 2001 > From: Lei wang <leiwan@codeaurora.org> > Date: Tue, 17 Apr 2018 10:55:35 +0800 > Subject: [PATCH] xhci: plat: Fix xhci_plat shutdown hung > > xhci-plat Shutdown callback should check HCD_FLAG_HW_ACCESSIBLE > before accessing any register. This should avoid hung with access > controllers which support runtime suspend > > Signed-off-by: Lei wang <leiwan@codeaurora.org> > --- > drivers/usb/host/xhci.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c > index 9b27798..bdf914d 100644 > --- a/drivers/usb/host/xhci.c > +++ b/drivers/usb/host/xhci.c > @@ -702,6 +702,10 @@ static void xhci_shutdown(struct usb_hcd *hcd) > usb_disable_xhci_ports(to_pci_dev(hcd->self.sysdev)); > > spin_lock_irq(&xhci->lock); > + if (!HCD_HW_ACCESSIBLE(hcd)) { > + spin_unlock_irq(&xhci->lock); > + return; > + } > xhci_halt(xhci); > /* Workaround for spurious wakeups at shutdown with HSW */ > if (xhci->quirks & XHCI_SPURIOUS_WAKEUP) > -- > 1.9.1 > Hi, This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him a patch that has triggered this response. He used to manually respond to these common problems, but in order to save his sanity (he kept writing the same thing over and over, yet to different people), I was created. Hopefully you will not take offence and will fix the problem in your patch and resubmit it so that it can be accepted into the Linux kernel tree. You are receiving this message because of the following common error(s) as indicated below: - Your patch was attached, please place it inline so that it can be applied directly from the email message itself. If you wish to discuss this problem further, or you have questions about how to resolve this issue, please feel free to respond to this email and Greg will reply once he has dug out from the pending patches received from other developers. thanks, greg k-h's patch email bot -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 17, 2018 at 11:32:42AM +0800, leiwan@codeaurora.org wrote: > > xhci-plat Shutdown callback should check HCD_FLAG_HW_ACCESSIBLE > before accessing any register. This should avoid hung with access > controllers which support runtime suspend > > This can fix for issue of https://patchwork.kernel.org/patch/10339317/ > corresponding upload in CAF: > https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?h=LV.HB.1.1.5-03810-8x96.0&id=a7a5307ee04ad349d365ad50f304605a9cd9bd0a > > full patch refer attachment. > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c > index 9b27798..bdf914d 100644 > --- a/drivers/usb/host/xhci.c > +++ b/drivers/usb/host/xhci.c > @@ -702,6 +702,10 @@ static void xhci_shutdown(struct usb_hcd *hcd) > usb_disable_xhci_ports(to_pci_dev(hcd->self.sysdev)); > > spin_lock_irq(&xhci->lock); > + if (!HCD_HW_ACCESSIBLE(hcd)) { > + spin_unlock_irq(&xhci->lock); > + return; > + } > xhci_halt(xhci); A blank line after the if statement? What about all of the other places in this driver that you should also check for this? Look at the other host controllers, shouldn't you mirror what they are doing? And this needs a Fixes: tag, along with a cc: stable so as to properly get backported as this is broken in some stable kernels right now. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From 9b65acb64f1ad87d115fa147c9e947fb3d37471c Mon Sep 17 00:00:00 2001 From: Lei wang <leiwan@codeaurora.org> Date: Tue, 17 Apr 2018 10:55:35 +0800 Subject: [PATCH] xhci: plat: Fix xhci_plat shutdown hung xhci-plat Shutdown callback should check HCD_FLAG_HW_ACCESSIBLE before accessing any register. This should avoid hung with access controllers which support runtime suspend Signed-off-by: Lei wang <leiwan@codeaurora.org> --- drivers/usb/host/xhci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 9b27798..bdf914d 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -702,6 +702,10 @@ static void xhci_shutdown(struct usb_hcd *hcd) usb_disable_xhci_ports(to_pci_dev(hcd->self.sysdev)); spin_lock_irq(&xhci->lock); + if (!HCD_HW_ACCESSIBLE(hcd)) { + spin_unlock_irq(&xhci->lock); + return; + } xhci_halt(xhci); /* Workaround for spurious wakeups at shutdown with HSW */ if (xhci->quirks & XHCI_SPURIOUS_WAKEUP) -- 1.9.1