On Tue, Mar 19, 2002, Greg KH <[EMAIL PROTECTED]> wrote: > On Tue, Mar 19, 2002 at 11:49:47AM -0500, Johannes Erdfelt wrote: > > On Mon, Mar 18, 2002, Greg KH <[EMAIL PROTECTED]> wrote: > > > On Mon, Mar 18, 2002 at 12:47:14AM -0500, Johannes Erdfelt wrote: > > > > Unfortunately, I left out one line from my spinlock cleanup patch > > > > recently. > > > > > > > > As a result, using interrupt URB's could cause a deadlock on SMP > > > > kernels. > > > > > > > > This should fix the deadlock Greg reported. > > > > > > I've added this to my tree, but no, it does not solve my lockup problem > > > (for those playing at home, it's a SMP kernel on a UP box, with a > > > Microsoft trackball.) I'll do more tests tomorrow to see if I can > > > narrow it down some more (i.e. if it's only with a specific device > > > plugged in or not.) > > > > Weird. I could reproduce a lockup with a USB joystick I have. But this > > solved the problem for me. > > I tried again this morning and reproduced it, and captured an oops. > I can load uhci.o with no devices plugged into the bus just fine. But > when I insert my trackball into the root hub I get the following oops:
Excellent. This will definately help. > ksymoops 2.4.5 on i686 2.5.7. Options used > -V (default) > -k /proc/ksyms (default) > -l /proc/modules (default) > -o /lib/modules/2.5.7/ (default) > -m /boot/System.map (specified) > > Oops: 0000 > CPU: 0 > EIP: [<d186657c>] Not tainted > Using defaults from ksymoops -t elf32-i386 -a i386 > Call Trace: [<d186665a>] [<d18672e2>] [<d1868398>] [<d1852e99>] [<d1852fab>] > [<d185312a>] [<d18531c4>] [<d1854042>] [<d1854b21>] [<c01ab794>] [<d18621ab>] > [<d18569dc>] [<d1856bff>] [<d1860360>] [<d1856eb5>] [<c01057f6>] [<d1856e40>] > Code: 8b 48 2c 8d 58 2c 39 cb 74 21 8d 76 00 8d bc 27 00 00 00 00 > > > >>EIP; d186657c <[uhci]_uhci_insert_qh+1c/b0> <===== > > Trace; d186665a <[uhci]uhci_insert_qh+4a/80> > Trace; d18672e2 <[uhci]uhci_submit_control+242/290> > Trace; d1868398 <[uhci]uhci_submit_urb+1f8/390> > Trace; d1852e99 <[usbcore]usb_submit_urb+29/40> > Trace; d1852fab <[usbcore]usb_start_wait_urb+ab/1c0> > Trace; d185312a <[usbcore]usb_internal_control_msg+6a/80> > Trace; d18531c4 <[usbcore]usb_control_msg+84/a0> > Trace; d1854042 <[usbcore]usb_set_address+22/30> > Trace; d1854b21 <[usbcore]usb_new_device+21/240> > Trace; c01ab794 <sprintf+14/20> > Trace; d18621ab <[usbcore].LC16+723/10d8> > Trace; d18569dc <[usbcore]usb_hub_port_connect_change+27c/310> > Trace; d1856bff <[usbcore]usb_hub_events+18f/3d0> > Trace; d1860360 <[usbcore].LC76+58/60> > Trace; d1856eb5 <[usbcore]usb_hub_thread+75/100> > Trace; c01057f6 <kernel_thread+26/30> > Trace; d1856e40 <[usbcore]usb_hub_thread+0/100> > > Code; d186657c <[uhci]_uhci_insert_qh+1c/b0> > 00000000 <_EIP>: > Code; d186657c <[uhci]_uhci_insert_qh+1c/b0> <===== > 0: 8b 48 2c mov 0x2c(%eax),%ecx <===== > Code; d186657f <[uhci]_uhci_insert_qh+1f/b0> > 3: 8d 58 2c lea 0x2c(%eax),%ebx > Code; d1866582 <[uhci]_uhci_insert_qh+22/b0> > 6: 39 cb cmp %ecx,%ebx > Code; d1866584 <[uhci]_uhci_insert_qh+24/b0> > 8: 74 21 je 2b <_EIP+0x2b> d18665a7 ><[uhci]_uhci_insert_qh+47/b0> > Code; d1866586 <[uhci]_uhci_insert_qh+26/b0> > a: 8d 76 00 lea 0x0(%esi),%esi > Code; d1866589 <[uhci]_uhci_insert_qh+29/b0> > d: 8d bc 27 00 00 00 00 lea 0x0(%edi,1),%edi > > I had to copy it by hand, hence all of the missing registers at the > beginning, sorry. That's fine. I think this will be enough to help track it down. > If you want me to test anything else out, please let me know. Just curious about what you did to reproduce it: You loaded uhci.o You plugged in a hub You plugged in the trackbacll Is that right? Did it finish enumeration? JE _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
