On 31 May 2003, David C. Moore wrote: > uhci.c in the latest stable kernel release candidates seems to have a > race condition in the suspend code triggered when all devices are > unplugged. > > When the final device is unplugged, suspend_hc() is called to reduce > bus-mastering activity so that ACPI idling can give greater power > savings. However, there is a final uhci interrupt simultaneously. > suspend_hc() gets preempted before it finishes, and wakeup_hc() is > called within the interrupt handler uhci_interrupt(). > > The end result is that the host controller remains woken up, however > uhci->is_suspended is set to true. This doesn't seem to cause serious > problems, except for a few erroneous error messages and the fact that > the host controller is not suspended (bad for power management). > > I was able to fix this temporarily for myself by wrapping suspend_hc() > and wakeup_hc() with a spinlock. However, I suspect the patch that Alan > Stern recently applied to the 2.5 series to fix issues with the > controller state probably solves the problem (it removes the wakeup_hc() > call from uhci_interrupt()). Is there any chance this patch will be > applied to the 2.4 uhci driver as well?
I had not planned on back-porting that patch to 2.4 uhci.c. This seemed like a relatively minor problem, one that wouldn't suffer from being uncorrected in the stable branch until 2.6 comes out. But if there's a demand, the port could be done. Alan Stern ------------------------------------------------------- This SF.net email is sponsored by: eBay Get office equipment for less on eBay! http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel