Subject: Fix/workarond for USB ** host controller halted ** errors?
To: None <firstname.lastname@example.org, email@example.com,>
From: None <firstname.lastname@example.org>
Date: 10/04/2005 19:52:42
On a heavily loaded i386 (dual-Xeon) based system,
using Intel's ICH3 I/O controller chip (which includes a 1.1 USB HC),
I'm seeing the following uhci errors:
kernel: uhci1: host controller process error
kernel: uhci1: host controller halted
This occurs after several hours of load on the system.
Apparently, the USB host controller complains about an inconsistency
one of the TD's in its Frame List.
Is there any workaround and/or fix for this issue?
I don't want to reboot to solve this.
In reviewing the uhci code, there could be a race-condition when
adding/removing Queue Heads
between the HCD and the HC;
specifically, the T-bit needs to be set in the elink field of the QH so
that the HC
doesn't follow the pointer.
However, after setting the T-bit, there is a call to
to give the HC time to stop looking at the TD.
Could this delay() be insufficient at times, depending on the platform
in use and/or load on the system?
Any help you can provide is greatly appreciated.