Am Montag, 18. April 2005 17:34 schrieb Alan Stern:
> > > Furthermore, there's nothing to prevent USB device drivers from calling
> > > usb_submit_urb() or usb_unlink_urb() while they have disabled interrupts
> > > for their own reasons.  That's a perfectly legal thing to do, but again it
> > > means that enqueue and dequeue can be called with interrupts disabled.
> > 
> > Their own fault. Drivers can do any number of stupid things with interrupts
> > disabled.
> 
> Well sure, but that doesn't help.  It's part of the API, it's necessary if

Is it necessary or is it part of the API? If the latter, then the API should
be changed. USB always did an embarrasing amount of work in interrupt
except for the brave people like Dave who actually use tasklets themselves.
The migratory path should be quite clear.

> completion routines are called with interrupts disabled and they resubmit,
> and it's why the mem_flags argument had to be added to usb_submit_urb.

It would be needed anyway for the block IO path.
 
> By the way, I'm a little surprised at all the commotion caused by this
> proposal to use a tasklet.  Plenty of other drivers and subsystems use
> them.  The network code does almost everything in bottom halves, and it
> doesn't suffer from any shortage of latency requirements.  And what about
> the block layer?  Why should USB be any different?

It shouldn't. The completion handler should have been called in a bottom half
from the beginning.
But you are proposing something unheard of. Nobody has ever used a tasklet
outside of IRQ handling in a strict sense. The networking code is using
tasklets only on the recieve path. hard_start_xmit() is called conventionally.

        Regards
                Oliver


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id396&op=click
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to