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

Reply via email to