> From: Duncan Sands <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Date: Sat, 3 Nov 2001 22:53:21 +0100

> (2) Why does the pegasus driver bother to submit a new
> URB during completion (in fact it resubmits the same URB
> it is handling completion for)? - wouldn't it be simpler just to
> link the URB to itself (using the "next" field), causing the
> usb subsystem to automatically submit it endlessly (avoid
> the need to explicitly resubmit it)?

I do not think that automatic resubmit of itself is a smart idea.
If a processing is delayed for a very small amount, sufficient
for the board to start DMA-ing a start of the next packet,
the start of the previous packet will be destroyed.

The situation may be easied by devising a multibuffer scheme,
where next points to some other packet, and that one points
to the first packet in a ring. Still, I think it is unsafe
to let the DMA hardware to ravage the memory unchecked.
Better let it loose packets than risk corruption, _especially_
in networking. There is a very large number of idiots who think
"Ethernet has CRC", and never check for validity. The self-resubmit
blows them out of the water with vegneance (hmm... perhaps it's
a good thing, after all :)

-- Pete

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to