OpenSolaris

Printable Version Enter a New Search
Bug ID 6767575
Synopsis uhci_quiesce() should clear status bits
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:boot-x86
Keywords Fastreboot
Responsible Engineer Sherry Moore
Reported Against
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_104
Fixed In snv_104
Release Fixed solaris_nevada(snv_104)
Related Bugs
Submit Date 4-November-2008
Last Update Date 4-December-2008
Description
On certain x86 systems, such as Dell XPS M1330, fast reboot would hang
during uhci_attach() as soon as interrupts are enabled for a certain dip.
Further debugging showed that the hang is caused by interrupt flood on uhci
nodes still in UHCI_CTLR_INIT_STATE, USBSTS (status) has USBSTS_REG_USB_INTR
(0x0001) bit set, but USBINTR (interrupt enable) is 0 (all disabled).  As
a result, uhci_intr() is continuously invoked to handle this interrupt, yet
since interrupt is not enabled yet, the interrupt is not claimed.  The system
hangs.

The fix is to clear the status bits in uhci_quiesce().  See suggested fix
for details.
Work Around
Disable uhci, ie, put the following in the boot options:
    -B disable-uhci=true
Comments
N/A