On Wed, Oct 29, 2003 at 04:01:06PM -0500, Alan Stern wrote:
> This patch should fix the problem reported below by Daniel Dorau.  The 
> oops was caused by inadequate synchronization between khubd and
> hub_disconnect().  The hub interface-data pointer was reset by the 
> disconnect routine while khubd was still using it.  The revised code 
> doesn't erase the pointer until after khubd has terminated.
> 
> The patch also improves the synchronization with hub_irq().  The current
> code could, under the proper race conditions, resubmit the hub URB during
> an rmmod.  Alternatively, it could unlink the URB but then exit and unload 
> before the callback routine had run.  Proper use of a struct completion 
> and an urb_active flag will prevent either of those errors.
> 
> Finally, the patch changes spin_lock_save() to spin_lock() within 
> the completion routine (which always runs with local interrupts disabled) 
> and replaces a couple of list_del()/INIT_LIST_HEAD() sequences with 
> list_del_init().

Hm, looks like this patch does 3 different things, right?  Care to send
3 different patches?  :)

thanks,

greg k-h


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to