Messages in this thread | | | Date | Tue, 1 Oct 2002 22:24:11 -0400 | From | Johannes Erdfelt <> | Subject | Re: Multiple OOPS with Linux-2.5.40 |
| |
On Tue, Oct 01, 2002, Greg KH <greg@kroah.com> wrote: > On Tue, Oct 01, 2002 at 08:25:17PM -0500, Krishnakumar B wrote: > > hcd-pci.c: uhci-hcd @ 00:1f.2, Intel Corp. 82801AA USB > > hcd-pci.c: irq 19, io base 0000ff80 > > hcd.c: new USB bus registered, assigned bus number 1 > > hub.c: USB hub found at 0 > > hub.c: 2 ports detected > > Debug: sleeping function called from illegal context at /u/scratch/downloads/kernel/linux-2.5.40/include/asm/semaphore.h:119 > > df675f70 e2886692 e28926c0 00000077 df675fa8 df808760 df664f88 df66e0d0 > > df674000 dfb36100 00000286 df674000 df674000 df675fc0 df674000 e28869f5 > > dfa1b860 dfb36100 df674000 df81df34 00000000 dfa1b860 c0118260 00000000 > > Call Trace: > > [<e2886692>]usb_hub_events+0x82/0x3b0 [usbcore] > > [<e28926c0>].rodata.str1.32+0xd20/0x28e2 [usbcore] > > [<e28869f5>]usb_hub_thread+0x35/0x100 [usbcore] > > [<c0118260>]default_wake_function+0x0/0x40 > > [<e28869c0>]usb_hub_thread+0x0/0x100 [usbcore] > > [<c0105665>]kernel_thread_helper+0x5/0x10 > > I think this is due to the following lines of code in > drivers/usb/core/hub.c: > spin_lock_irqsave(&hub_event_lock, flags); > > .... > > down(&hub->khubd_sem); /* never blocks, we were on list */ > spin_unlock_irqrestore(&hub_event_lock, flags); > > Johannes, any reason for the down() when we have a spinlock held?
It was a patch from Pete to fix a race condition in the hub driver. It looks to be safe, but obviously should be cleaned up.
I'm working on a reference counting patch to remove this bit.
See the thread on linux-usb-devel that David started about this problem.
JE
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |