This one didn't quite make 2.4.3, this time I've CC'd to AC.

I've been using this fix for a few days now & it's cleared up a lot of 
problems - although I'm not 100% sure why it worked (the memset should 
do the same job as the spin_lock_init surely?).

Tony

-------- Original Message --------
Subject: [PATCH] Fix SMP lockup in usbdevfs
Date: Fri, 30 Mar 2001 02:36:47 +0100
From: Tony Hoyle <[EMAIL PROTECTED]>
Organization: Magenta Logic
To: [EMAIL PROTECTED]
CC: [EMAIL PROTECTED]

This fixes a lockup when calling the USBDEVFS_SUBMITURB ioctl in an SMP
kernel.

Tony

-- 
Don't click on this sig - a cyberwoozle will eat your underwear.

[EMAIL PROTECTED]        http://www.nothing-on.tv

--- devio.c.old Fri Mar 30 02:22:32 2001
+++ devio.c     Fri Mar 30 02:12:09 2001
@@ -175,6 +175,7 @@
                 return NULL;
         memset(as, 0, assize);
         as->urb.number_of_packets = numisoframes;
+        spin_lock_init(&as->urb.lock);
         return as;
 }
 
@@ -250,7 +251,7 @@
         struct dev_state *ps = as->ps;
        struct siginfo sinfo;
 
-#if 1
+#if 0
        printk(KERN_DEBUG "usbdevfs: async_completed: status %d errcount %d actlen %d 
pipe 0x%x\n", 
               urb->status, urb->error_count, urb->actual_length, urb->pipe);
 #endif

Reply via email to