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:


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.

If you want me to test anything else out, please let me know.

thanks,

greg k-h

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to