uhci_hcd: host system error

From: Trifon Trifonov
Date: Mon Jun 04 2007 - 11:02:24 EST


Hello all,

I am using kernel 2.6.20-16 (Ubuntu Feisty). Occasionally I am getting USB host controller halts. If I manually remove and reinsert the uhci_hcd module, everything is back to normal. I recompiled the kernel with the CONFIG_USB_DEBUG option on and waited until a halt occurred. The devices I had connected were:

Bus 005 Device 002: ID eb1a:2750 eMPIA Technology, Inc.
Bus 005 Device 001: ID 0000:0000 Bus 004 Device 003: ID 045e:008c Microsoft Corp. Wireless Intellimouse Explorer 2.0
Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000

The entry in the syslog indicating the halt are the following:

Jun 4 16:00:53 localhost kernel: [ 355.820000] uhci_hcd 0000:00:1d.3: host system error, PCI problems?
Jun 4 16:00:53 localhost kernel: [ 355.820000] uhci_hcd 0000:00:1d.3: host controller halted, very bad!
Jun 4 16:00:53 localhost kernel: [ 355.820000] uhci_hcd 0000:00:1d.3: HC died; cleaning up
Jun 4 16:00:53 localhost kernel: [ 355.820000] hub 4-0:1.0: state 0 ports 2 chg 0000 evt 0000
Jun 4 16:00:53 localhost kernel: [ 355.820000] usb 4-1: USB disconnect, address 2
Jun 4 16:00:53 localhost kernel: [ 355.820000] usb 4-1: unregistering device
Jun 4 16:00:53 localhost kernel: [ 355.820000] usb 4-1: usb_disable_device nuking all URBs
Jun 4 16:00:53 localhost kernel: [ 355.820000] uhci_hcd 0000:00:1d.3: shutdown urb dfc4a840 pipe 40408280 ep1in-intr
Jun 4 16:00:53 localhost kernel: [ 355.824000] usb 4-1: unregistering interface 4-1:1.0
Jun 4 16:00:53 localhost kernel: [ 355.824000] usbdev4.2_ep81: ep_device_release called for usbdev4.2_ep81
Jun 4 16:00:53 localhost kernel: [ 355.824000] usb 4-1:1.0: uevent
Jun 4 16:00:53 localhost kernel: [ 355.824000] usbdev4.2_ep00: ep_device_release called for usbdev4.2_ep00
Jun 4 16:00:53 localhost kernel: [ 355.824000] usb 4-1: uevent

I also used debugfs to monitor to status of the hubs. After the halt, the 0000:00:1d.3 had the following content:

Root-hub state: reset FSBR: 0
HC status
usbcmd = 0000 Maxp32
usbstat = 0020 HCHalted
usbint = 0000
usbfrnum = (0)000
flbaseadd = 1fd04000
sof = 40
stat1 = 01a3 LowSpeed ConnectChange Connected
stat2 = 0080 Most recent frame: 54cb9 (185) Last ISO frame: 54cb9 (185)

After the manual reset of the host controllers, the file contained

Root-hub state: running FSBR: 0
HC status
usbcmd = 00c1 Maxp64 CF RS
usbstat = 0000 usbint = 000f
usbfrnum = (1)ef0
flbaseadd = 1acf4ef0
sof = 40
stat1 = 01a5 LowSpeed Enabled Connected
stat2 = 0080 Most recent frame: 2b76f (879) Last ISO frame: 2b76f (879)

I don't think that the device connected actually matters, because I have had the same halts with different devices. Here is the relevant output from lspci -vv:

00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02) (prog-if 00 [UHCI])
Subsystem: Elitegroup Computer Systems Unknown device 0f69
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 19
Region 4: I/O ports at ec00 [size=32]

00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02) (prog-if 00 [UHCI])
Subsystem: Elitegroup Computer Systems Unknown device 0f69
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 20
Region 4: I/O ports at e880 [size=32]

00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02) (prog-if 00 [UHCI])
Subsystem: Elitegroup Computer Systems Unknown device 0f69
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin C routed to IRQ 21
Region 4: I/O ports at e800 [size=32]

00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02) (prog-if 00 [UHCI])
Subsystem: Elitegroup Computer Systems Unknown device 0f69
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin D routed to IRQ 22
Region 4: I/O ports at e480 [size=32]

00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) (prog-if 20 [EHCI])
Subsystem: Elitegroup Computer Systems Unknown device 0f69
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin C routed to IRQ 21
Region 0: Memory at ffefbc00 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Debug port

Can anyone suggest what the problem could be? Could I hope for any fix (or a quirk), which could overcome the crashes?

When replying, please CC: my email. Thank you.

Trifon Trifonov
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/