Messages in this thread Patch in this message | | | Date | Tue, 25 Mar 2003 08:12:32 -0800 | From | David Brownell <> | Subject | Re: [linux-usb-devel] timer hang with current 2.5 BK |
| |
Duncan Sands wrote: > 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); | |