On Wed, 11 Jul 2012, Tomoya MORINAGA wrote: > > Signed-off-by: Tomoya MORINAGA <tomoya.rohm@xxxxxxxxx> There's no patch description. What is the cause of the problem and how does the patch fix it? > --- > drivers/usb/host/ehci-hub.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c > index fc9e7cc..d596d0f 100644 > --- a/drivers/usb/host/ehci-hub.c > +++ b/drivers/usb/host/ehci-hub.c > @@ -207,6 +207,7 @@ static int ehci_bus_suspend (struct usb_hcd *hcd) > int port; > int mask; > int changed; > + int temp; > > ehci_dbg(ehci, "suspend root hub\n"); > > @@ -324,6 +325,9 @@ static int ehci_bus_suspend (struct usb_hcd *hcd) > * want, and so we must delete any pending watchdog timer events. > */ > del_timer_sync(&ehci->watchdog); > + temp = ehci_readl(ehci, &ehci->regs->status); > + if (temp & STS_FLR) > + ehci_writel(ehci, STS_FLR, &ehci->regs->status); > return 0; Operations like this should be done while holding the spinlock. Also, why do you need the ehci_readl and the test? You could always clear the STS_FLR flag. Alan Stern -- 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