> pegasus_tx_timeout() unlinks the tx_urb asynchronously, as it must.
> However pegasus_start_xmit() uses this urb without checking
> for the unlinking having been done.
The upper layer will not send any packets downstream (i.e.
call pegasus_start_xmit()) because netif_wake_queue() is called
only from the completion handler.
> This looks suspicious, is there a hidden assumption that the device
> will be reset before another packet is sent ?
nope. reseting this particular device is not easy with the existing
urb scheduling mechanism and the driver ended up just not doing it
during the normal work process. :-)
Petko
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel