On Wed, 20 Aug 2003, Rob Miller wrote:
>
> I've done some further work on the problem I reported earlier involving
> the Sharp Zaurus and the uhci and usbnet modules. I'm currently running
> 2.4.22-rc2 with ACPI (20030813) and swsusp (1.1-rc5) patches. I can
> reproduce the problem with only uhci.o and usbcore.o loaded; the "->"
> lines below indicate what I believe are the relevant console/syslog
> messages:
>
> modprobe uhci
> plug in the zaurus
> -> usb.c: USB device 2 (vend/prod 0x4dd/0x8004) is not claimed by any active driver.
> unplug the zaurus
> -> uhci.c: efe0: host controller halted. very bad
> rmmod uhci
> -> kmem_cache_destroy: Can't free all objects c158bcd0
> -> uhci: not all urb_priv's were freed
> modprobe uhci
> -> uhci.c: USB Universal Host Controller Interface driver v1.1
> -> kernel BUG at slab.c:815!
> [stack dump, call trace]
>
> The code in uhci.c, uhci_interrupt() says:
> ...
> if (status & ~(USBSTS_USBINT | USBSTS_ERROR | USBSTS_RD)) {
> ...
> if ((status & USBSTS_HCH) && !uhci->is_suspended) {
> err("%x: host controller halted. very bad",io_addr);
> /* FIXME: Reset the controller, fix the offending TD */
> }
>
> I tried reset_hc(uhci) here, but clearly that's not enough. I don't know
> how to "fix the offending TD", probably if it were trivial it would
> already be done. I guess there some urb pending which never gets cleared,
> then it all falls down upon module removal?
>
> hints, pointers, suggestions, code snippets, patch(es) would be much
> appreciated. I need to be able to rmmod uhci to suspend/resume.
That particular error message ("host controller halted. very bad") doesn't
really indicate an error in this case. It gets printed because of a race.
After you unplug the last device from the controller, the driver shuts the
controller down. But the interrupt handler notices the controller has
stopped _before_ the flag indicating that no more devices are connected
gets set. Hence the message. This has been fixed in 2.6.
The other message ("Can't free all objects") is more serious. I don't
know what's responsible for that -- it indicates some kind of memory leak.
Alan Stern
-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel