If I remove the uhci_hcd or ehci_hcd module, then I systematically get the following:
(EIP) run_timer_softirq+0xe3/0x400 timer_interrupt+0x1a3/0x3f0 do_softirq+0xa1/0xb0 do_IRQ+0x23f/0x380 common_interrupt+0x18/0x20 code: 89 50 04 89 02 C7 41
kernel/timer.c:302: spin_lock (kernel/timer.c:c02f7b00) already locked by kernel/timer.c/398.
killing interrupt handler etc
Presumably this is related to the stall_timer. This has been happening for ?one week?, and still occurs with current BK. Occurs with and without preempt (UP).
Any ideas?
I'm not getting it any more, but then I'm also running with this patch too ... the current source prevents drivers from properly disconnect()ing, which means all kinds of state doesn't get cleaned up.
What usually gets me lately is that the whole system locks up when I remove certain modules. SysRq behaves but little else (no console). The common behavior seems to be that the call_usermode_helper() logic is waiting forever; such as waiting for network interface "remove" events to finish.
- Dave
--- 1.15/drivers/usb/core/urb.c Thu Mar 13 10:45:40 2003
+++ edited/drivers/usb/core/urb.c Thu Mar 20 11:17:55 2003
@@ -384,11 +384,11 @@
/* FIXME
* We should not care about the state here, but the host controllers
* die a horrible death if we unlink a urb for a device that has been
- * physically removed.
+ * physically removed. (after driver->disconnect returns...)
*/
if (urb &&
urb->dev &&
- (urb->dev->state >= USB_STATE_DEFAULT) &&
+ // (urb->dev->state >= USB_STATE_DEFAULT) &&
urb->dev->bus &&
urb->dev->bus->op)
return urb->dev->bus->op->unlink_urb(urb);
