Oliver -- Thanks.
-- Al > Hi, > usb_unlink_urb() is asynchronous, therefore an URB's buffer may not > be freed without waiting for the completion handler. This patch switches > to usb_kill_urb(), which is synchronous. > Thanks to Alan for making me look at the remaining users of usb_unlink_urb() > > Regards > Oliver Signed-off-by: Oliver Neukum <[EMAIL PROTECTED]> Signed-off-by: Al Borchers <[EMAIL PROTECTED]> -- --- a/drivers/usb/serial/io_edgeport.c 2007-06-13 18:35:25.000000000 +0200 +++ b/drivers/usb/serial/io_edgeport.c 2007-06-13 18:36:04.000000000 +0200 @@ -3046,11 +3046,11 @@ static void edge_shutdown (struct usb_se } /* free up our endpoint stuff */ if (edge_serial->is_epic) { - usb_unlink_urb(edge_serial->interrupt_read_urb); + usb_kill_urb(edge_serial->interrupt_read_urb); usb_free_urb(edge_serial->interrupt_read_urb); kfree(edge_serial->interrupt_in_buffer); - usb_unlink_urb(edge_serial->read_urb); + usb_kill_urb(edge_serial->read_urb); usb_free_urb(edge_serial->read_urb); kfree(edge_serial->bulk_in_buffer); } ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel