diff options
author | Nicolas Dichtel <nicolas.dichtel@6wind.com> | 2013-08-13 11:51:09 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-15 04:00:20 -0400 |
commit | 64261f230a9157f5f520ce30ec6827d679375e2f (patch) | |
tree | d081ea17ad44da140522604454670f93f9015135 /net/ipv4/ip_tunnel.c | |
parent | fc4eba58b4c1462ff3d6247b66fb47d6928db6d2 (diff) |
dev: move skb_scrub_packet() after eth_type_trans()
skb_scrub_packet() was called before eth_type_trans() to let eth_type_trans()
set pkt_type.
In fact, we should force pkt_type to PACKET_HOST, so move the call after
eth_type_trans().
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ip_tunnel.c')
-rw-r--r-- | net/ipv4/ip_tunnel.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c index 9fdf8a6d95f3..fbc1094964bf 100644 --- a/net/ipv4/ip_tunnel.c +++ b/net/ipv4/ip_tunnel.c | |||
@@ -454,15 +454,16 @@ int ip_tunnel_rcv(struct ip_tunnel *tunnel, struct sk_buff *skb, | |||
454 | tstats->rx_bytes += skb->len; | 454 | tstats->rx_bytes += skb->len; |
455 | u64_stats_update_end(&tstats->syncp); | 455 | u64_stats_update_end(&tstats->syncp); |
456 | 456 | ||
457 | if (tunnel->net != dev_net(tunnel->dev)) | ||
458 | skb_scrub_packet(skb); | ||
459 | |||
460 | if (tunnel->dev->type == ARPHRD_ETHER) { | 457 | if (tunnel->dev->type == ARPHRD_ETHER) { |
461 | skb->protocol = eth_type_trans(skb, tunnel->dev); | 458 | skb->protocol = eth_type_trans(skb, tunnel->dev); |
462 | skb_postpull_rcsum(skb, eth_hdr(skb), ETH_HLEN); | 459 | skb_postpull_rcsum(skb, eth_hdr(skb), ETH_HLEN); |
463 | } else { | 460 | } else { |
464 | skb->dev = tunnel->dev; | 461 | skb->dev = tunnel->dev; |
465 | } | 462 | } |
463 | |||
464 | if (tunnel->net != dev_net(tunnel->dev)) | ||
465 | skb_scrub_packet(skb); | ||
466 | |||
466 | gro_cells_receive(&tunnel->gro_cells, skb); | 467 | gro_cells_receive(&tunnel->gro_cells, skb); |
467 | return 0; | 468 | return 0; |
468 | 469 | ||