diff options
author | Jiri Pirko <jpirko@redhat.com> | 2011-08-22 12:43:22 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-08-22 12:43:22 -0700 |
commit | 0dfe178239453547d4297a4583ee7847948a481b (patch) | |
tree | d6baba6edd14ff111338cc4466cbc09836cd29bd /net/core | |
parent | c8d755b59ae6750150d7f351210b97ad4cce5a51 (diff) | |
download | linux-3.10-0dfe178239453547d4297a4583ee7847948a481b.tar.gz linux-3.10-0dfe178239453547d4297a4583ee7847948a481b.tar.bz2 linux-3.10-0dfe178239453547d4297a4583ee7847948a481b.zip |
net: vlan: goto another_round instead of calling __netif_receive_skb
Now, when vlan tag on untagged in non-accelerated path is stripped from
skb, headers are reset right away. Benefit from that and avoid calling
__netif_receive_skb recursivelly and just use another_round.
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dev.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index c2442b46646..a4306f7e4d0 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3236,10 +3236,9 @@ ncls: ret = deliver_skb(skb, pt_prev, orig_dev); pt_prev = NULL; } - if (vlan_do_receive(&skb)) { - ret = __netif_receive_skb(skb); - goto out; - } else if (unlikely(!skb)) + if (vlan_do_receive(&skb)) + goto another_round; + else if (unlikely(!skb)) goto out; } |