diff options
author | Jiri Pirko <jpirko@redhat.com> | 2011-08-22 15:43:22 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-08-22 15:43:22 -0400 |
commit | 0dfe178239453547d4297a4583ee7847948a481b (patch) | |
tree | d6baba6edd14ff111338cc4466cbc09836cd29bd /net/core | |
parent | c8d755b59ae6750150d7f351210b97ad4cce5a51 (diff) |
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 c2442b46646e..a4306f7e4d09 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -3236,10 +3236,9 @@ ncls: | |||
3236 | ret = deliver_skb(skb, pt_prev, orig_dev); | 3236 | ret = deliver_skb(skb, pt_prev, orig_dev); |
3237 | pt_prev = NULL; | 3237 | pt_prev = NULL; |
3238 | } | 3238 | } |
3239 | if (vlan_do_receive(&skb)) { | 3239 | if (vlan_do_receive(&skb)) |
3240 | ret = __netif_receive_skb(skb); | 3240 | goto another_round; |
3241 | goto out; | 3241 | else if (unlikely(!skb)) |
3242 | } else if (unlikely(!skb)) | ||
3243 | goto out; | 3242 | goto out; |
3244 | } | 3243 | } |
3245 | 3244 | ||