Hi, > -----Original Message----- > From: Oliver Neukum [mailto:oliver@xxxxxxxxxx] > Sent: Thursday, February 25, 2010 10:11 PM > To: Alan Stern > Cc: Gupta, Ajay Kumar; linux-usb@xxxxxxxxxxxxxxx > Subject: Re: [RFC] musb: Add workqueue for request giveback > > Am Donnerstag, 25. Februar 2010 16:42:57 schrieb Alan Stern: > > On Thu, 25 Feb 2010, Oliver Neukum wrote: > > > Only if the completed URB got an error. If there was no error then > > HCDs are allowed to start processing the next URB before giving back > > the completed URB. Conversely, if there was an error then the HCD > > _must_ give back the URB before starting to process the next one > > (unless the endpoint is Isochronous or it is a control endpoint and the > > error was -EREMOTEIO). This is all explained in the kerneldoc for > > usb_unlink_urb(). > > Alan, thanks for writing this kerneldoc. I should have read it. I only > remembered the problem with error handling. > > Ajay, do you meet this requirement? Alan/Oliver, Thanks for your input. Current patch always starts the next URB and doesn't giveback the completed URB if any error. I did face below kernel panic when I disconnected USB camera while streaming is on going. (__irq_svc+0x30/0x80) from [<c006070c>] (vprintk+0x310/0x348) (vprintk+0x310/0x348) from [<c032c350>] (printk+0x18/0x24) (printk+0x18/0x24) from [<c0263c28>] (uvc_video_complete+0x40/0xc4) (uvc_video_complete+0x40/0xc4) from (usb_hcd_giveback_urb+0x74/0xbc) (usb_hcd_giveback_urb+0x74/0xbc) from (musb_gb_work+0x14/0x30) (musb_gb_work+0x14/0x30) from [<c006e9a4>] (worker_thread+0x148/0x1c0) (worker_thread+0x148/0x1c0) from [<c007174c>] (kthread+0x7c/0x84) (kthread+0x7c/0x84) from [<c0034e9c>] (kernel_thread_exit+0x0/0x8) Hope it would get fixed if I handle the error scenario as well. I will work on this and keep you posted. Thanks, Ajay > > Regards > Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html