All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2.6.25-rc8] usb: another ehci_iaa_watchdog fix
@ 2008-04-02 20:40 David Brownell
  2008-04-02 20:51 ` patch usb-another-ehci_iaa_watchdog-fix.patch added to gregkh-2.6 tree gregkh
  0 siblings, 1 reply; 2+ messages in thread
From: David Brownell @ 2008-04-02 20:40 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Morton, linux-usb, lkml, Mark Lord

This patch, suggested by Alan Stern, fixes the hung USB issues
on my notebook from suspend/resume cycles.

It does so by eliminating some confusion about the internal state
machine associated with unlinking from the EHCI async schedule ring,
which caused a recent regression:

  http://bugzilla.kernel.org/show_bug.cgi?id=10345

Signed-off-by: Mark Lord <mlord@pobox.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
---
Merge before 2.6.25-final please...

--- rc8/drivers/usb/host/ehci-hub.c	2008-03-11 11:18:40.000000000 -0400
+++ linux/drivers/usb/host/ehci-hub.c	2008-04-02 13:28:50.000000000 -0400
@@ -135,8 +135,6 @@
 		hcd->state = HC_STATE_QUIESCING;
 	}
 	ehci->command = ehci_readl(ehci, &ehci->regs->command);
-	if (ehci->reclaim)
-		end_unlink_async(ehci);
 	ehci_work(ehci);
 
 	/* Unlike other USB host controller types, EHCI doesn't have
@@ -180,6 +178,9 @@
 	ehci_halt (ehci);
 	hcd->state = HC_STATE_SUSPENDED;
 
+	if (ehci->reclaim)
+		end_unlink_async(ehci);
+
 	/* allow remote wakeup */
 	mask = INTR_MASK;
 	if (!device_may_wakeup(&hcd->self.root_hub->dev))


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-04-02 20:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-02 20:40 [PATCH 2.6.25-rc8] usb: another ehci_iaa_watchdog fix David Brownell
2008-04-02 20:51 ` patch usb-another-ehci_iaa_watchdog-fix.patch added to gregkh-2.6 tree gregkh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.