From: Hayes Wang <[email protected]>
Date: Wed, 12 Nov 2014 06:29:46 +0000

> David Miller [mailto:[email protected]] 
>> Sent: Wednesday, November 12, 2014 1:44 PM
> [...]
>> What do other USB network drivers do in similar situations?
> 
> According to the usbnet.c, it would make sure to submit the
> number of min(10, RX_QLEN(dev)) rx buffers. If there are
> not enough rx buffers, it schedule a tasklet for next try.
> 
> The brief flow is as following.
> 1. Call open().
>    - schedule a tasklet.
> 2. Tasklet is called.
>    if (dev->rxq.qlen < RX_QLEN(dev)) {
>          - submit rx buffers util the number of
>            min(10, RX_QLEN(dev)). If the error
>            occurs, break the loop.
>          - If the dev->rxq.qlen < RX_QLEN(dev),
>            schedule the tasklet.
>    }

That sounds like a better recovery model, why don't you mimick it?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to