Hi all, Here's a tiny patch that fixes a potential oops that drivers could cause in usb_unlink_urb() and usb_submit_urb(). I traced down a race condition that the visor driver was ending up calling usb_unlink_urb() after it had been removed, and the urb->dev->bus was removed.
What do people think? Should this patch be added? thanks, greg k-h diff --minimal -Nru a/drivers/usb/usb.c b/drivers/usb/usb.c --- a/drivers/usb/usb.c Thu Nov 15 17:33:05 2001 +++ b/drivers/usb/usb.c Thu Nov 15 17:33:05 2001 @@ -1019,7 +1019,7 @@ /*-------------------------------------------------------------------*/ int usb_submit_urb(urb_t *urb) { - if (urb && urb->dev) + if (urb && urb->dev && urb->dev->bus && urb->dev->bus->op) return urb->dev->bus->op->submit_urb(urb); else return -ENODEV; @@ -1028,7 +1028,7 @@ /*-------------------------------------------------------------------*/ int usb_unlink_urb(urb_t *urb) { - if (urb && urb->dev) + if (urb && urb->dev && urb->dev->bus && urb->dev->bus->op) return urb->dev->bus->op->unlink_urb(urb); else return -ENODEV; _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel