On Wednesday 10 December 2014 11:07:32 David Miller wrote:
From: Arnd Bergmann <arnd@arndb.de>
Date: Wed, 10 Dec 2014 10:35:20 +0100
quoted
On Wednesday 10 December 2014 14:45:29 Ding Tianhong wrote:
quoted
Miss this code, I think the best way is skb_orphan(skb), just like the cxgb3 drivers, some hardware
didn't use the tx inq to free dmad Tx packages.
The problem with skb_orphan is that you are telling the network stack that
the packet is now out of its reach and it will no longer be able to take
queued packets into account.
skb_orphan() also does not release netfilter resources attached to the
packet.
Really, all drivers must free TX SKBs in a small, finite, amount of
time after submission.
There is no way around this.
I see. Do you see a problem with returning early from napi->poll()
without calling napi_complete() when the TX queue remains full at
the end of the poll function?
Or is there any better alternative for broken hardware that lacks
a TX-complete interrupt?
Arnd