[PATCH] iso pipe support for usbatm

Roman Kagan rkagan at mail.ru
Tue Mar 22 15:27:16 EST 2005


On Sat, Mar 19, 2005 at 03:37:40PM +0100, matthieu castet wrote:
> I agree that we need to manage the error differently in order to avoid 
> deadlock.

I just realized that in the current version an error in urb submission
doesn't cause a deadlock: it doesn't break out of the loop, as I
thought (it was the style of writing a loop with label: ... goto label;
rather than usual while(1) {...} which confused me).  However, if the
error isn't actually transient as it is assumed to be, this may cause a
livelock instead.

A solution to this can be to introduce two (rx and tx) timers to
throttle the resubmission.  Thinking of my patch, it should be fairly
trivial: a failed submission adjusts the timer to the throttling period
with a function to schedule the correspoding tasklet.

Alternatively, if we move the stuff to support the status polling from
the individual drivers to usbatm, we can use the polling heartbeat to
also schedule rx and tx tasklets.

Which approach do you think is better?

Roman.



More information about the Usbatm mailing list