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