On Sun, Mar 03, 2002 at 09:47:50PM +0000, Chris Rankin wrote:
> > If you can, could
> > you try out the 2.4.18-rc2-gregkh-1 patch that will apply cleanly on top
> > of 2.4.18 and let us know if that fixes your problem?
> >     
>http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/linux-2.4.18-rc2-gregkh-1.patch.gz
> 
> 
> Hi,
> 
> I have just tried the rc2-gregkh-1 patch on my 2.4.18 (SMP, devfs,
> 1.3GB) machine and I must report *disaster* with a USB mouse.
> 
> My machine has some interesting USB hardware:
> - 2 UHCI 1.1 ports (motherboard)
> - 4 OHCI/EHCI ports (OrangeMicro USB/Firewire combo card)
> 
> This means that the hotplug script loaded the uhci.o, usb-ohci.o and
> ehci-hcd.o modules.
> 
> When I plugged the mouse into one of the UHCI ports, the box loaded
> the input drivers and then locked up solid:
> 
> Mar  3 19:37:40 twopit kernel: hub.c: USB new device connect on bus4/1, assigned 
>device number 2
> Mar  3 19:37:40 twopit kernel: usb.c: USB device 2 (vend/prod 0x45e/0x9) is not 
>claimed by any active driver.
> Mar  3 19:37:40 twopit kernel: usb.c: registered new driver hiddev
> Mar  3 19:37:40 twopit kernel: usb.c: registered new driver hid
> Mar  3 19:37:40 twopit kernel: input0: USB HID v1.10 Mouse [Microsoft Microsoft USB 
>Mouse] on usb4:2.0
> Mar  3 19:37:40 twopit kernel: hid-core.c: v1.8 Andreas Gal, Vojtech Pavlik 
><[EMAIL PROTECTED]>
> Mar  3 19:37:40 twopit kernel: hid-core.c: USB HID support drivers
> 
> And that was all she wrote. Not even SysRQ worked. I might have had to
> move the mouse first before firework-time; I'm not sure.

You need one more patch. Attached. Greg? I think we need both.

> 
> For reference, the same USB mouse works fine on basic 2.4.18 with the
> following patch:
> 
> --- linux-2.4.18/drivers/usb/uhci.c.orig      Tue Feb 26 00:42:17 2002
> +++ linux-2.4.18/drivers/usb/uhci.c   Wed Feb 27 00:53:33 2002
> @@ -1685,9 +1685,9 @@
>  
>               /* Control and Isochronous ignore the toggle, so this */
>               /* is safe for all types */
> -             if ((!(td->status & TD_CTRL_ACTIVE) &&
> -                 (uhci_actual_length(td->status) < uhci_expected_length(td->info)) 
>||
> -                 tmp == head)) {
> +             if (!(td->status & TD_CTRL_ACTIVE) &&
> +                 ((uhci_actual_length(td->status) < uhci_expected_length(td->info)) 
>||
> +                 (tmp == head))) {
>                       usb_settoggle(urb->dev, uhci_endpoint(td->info),
>                               uhci_packetout(td->info),
>                               uhci_toggle(td->info) ^ 1);
> 
> This patch just fixes a UHCI regression between 2.4.17 and 2.4.18, so
> it's not controversial.
> 
> I've noticed that this USB 2.0 patch might be going into
> 2.4.19... ooerr!

-- 
Vojtech Pavlik
SuSE Labs
diff -u -r1.45 -r1.46
--- hid-core.c  21 Feb 2002 09:27:10 -0000      1.45
+++ hid-core.c  27 Feb 2002 22:26:58 -0000      1.46
@@ -1,5 +1,5 @@
 /*
- * $Id: hid-core.c,v 1.45 2002/02/21 09:27:10 vojtech Exp $
+ * $Id: hid-core.c,v 1.46 2002/02/27 22:26:58 jdeneux Exp $
  *
  *  Copyright (c) 1999 Andreas Gal
  *  Copyright (c) 2000-2001 Vojtech Pavlik
@@ -1047,6 +1048,7 @@
 
        if (hid->outhead != hid->outtail) {
                hid_submit_out(hid);
+               spin_unlock_irqrestore(&hid->outlock, flags);
                return;
        }
 
@@ -1078,6 +1080,7 @@
 
        if (hid->ctrlhead != hid->ctrltail) {
                hid_submit_ctrl(hid);
+               spin_unlock_irqrestore(&hid->ctrllock, flags);
                return;
        }
 

Reply via email to