Hi Oliver, > > an alternate way would be to extend the usb_kill_anchored_urbs() with > > its own complete handler that gets called for every anchored URB. This > > would make it possible to cleanup the allocated buffers. I attached a > > patch for that, too. > > No, that would mean an URB could have both its original and the additional > handler or only the additional handler called. That's increasing complexity, > not lowering it.
depends on how you use it. I would only use the original complete handler to do the re-submission of the URB and the additional handler to free the allocated buffers. For that use case it works perfectly fine. To avoid confusion we could rename it to usb_release_t or something similar. > It seems to me that freeing buffers in usbcore is the logical conclusion > of the pattern used in usb-skeleton. It may be used to avoid calling a > completion handler at all. I agree that it is the cleanest to free the buffers when URB is no longer in use. Normally that means that any allocated buffer for this URB is also not needed anymore. Actually I am happy with any solution that frees the driver from having to track the buffers for incoming endpoints used by an URB. For outgoing URBs the current approach with a separate buffer makes sense. This allows me to use an skb->data directly without copying the data first. Works really nicely in the new driver. Regards Marcel ------------------------------------------------------------------------- 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