diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-05-19 23:16:03 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-31 00:24:01 -0700 |
commit | 15e83ed78864d0625e87a85f09b297c0919a4797 (patch) | |
tree | a138efc4400c0857a9728f7ebbfe4f5c4fb71ad1 /net/core/dev.c | |
parent | 27f39c73e63833b4c081a0d681d88b4184a0491d (diff) |
net: remove zap_completion_queue
netpoll does an interesting work in zap_completion_queue(), but this was
before we did skb orphaning before delivering packets to device.
It now makes sense to add a test in dev_kfree_skb_irq() to not queue a
skb if already orphaned, and to remove netpoll zap_completion_queue() as
a bonus.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 7d76b056aa3..983a3c1d65c 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1577,7 +1577,9 @@ EXPORT_SYMBOL(__netif_schedule); void dev_kfree_skb_irq(struct sk_buff *skb) { - if (atomic_dec_and_test(&skb->users)) { + if (!skb->destructor) + dev_kfree_skb(skb); + else if (atomic_dec_and_test(&skb->users)) { struct softnet_data *sd; unsigned long flags; |