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
