> usbnet.c does something else. It seems that the bottom > half resubmits itself if submitting the urb fails.
... and it only tries to issue at most a handful of new urbs in any case. Not that I've yet dared leave URB queuing enabled, though it's been a while since I've tested that. By now, maybe all HCDs handle it sanely. > Dave, what prevents this from using up all CPU if > the submission fails ? Hmm, I was trusting the documentation in <linux/interrupt.h> to be useful when it says that if a tasklet schedules itself, "it is rescheduled for later". But I just looked some more, and I suspect "later" is less useful than it sounds ... seems like it's just put back on the "run this immediately" queue, which of course could be troublesome in cases where no other code ran and freed memory. If that's the case, I suspect the fix is to use a timer to handle the "still want more RX URBs queued" case. In "usbnet" it'd be right just to have that schedule the tasklet ... and to make closing the interface (safely) kill the timer, if it was live. Other drivers might want something similar. - Dave _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
