Okay, I'm puzzled. How could this make any difference?
ehci_bus_suspend() calls end_unlink_async() anyway, whenever reclaim is
set.
Is the real problem that it does so before calling ehci_work() instead
of after calling ehci_halt()?
Mark, if you want to experiment some more, try reverting your patch
above and moving:
if (ehci->reclaim)
end_unlink_async(ehci);
in ehci-hub.c:ehci_bus_suspend() to just after the line saying:
hcd->state = HC_STATE_SUSPENDED;
Alan Stern
--