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