diff options
author | Nicolas Dichtel <nicolas.dichtel@6wind.com> | 2013-08-13 17:51:09 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-15 10:00:20 +0200 |
commit | 64261f230a9157f5f520ce30ec6827d679375e2f (patch) | |
tree | d081ea17ad44da140522604454670f93f9015135 /net/ipv4/ip_tunnel.c | |
parent | ipv6: make unsolicited report intervals configurable for mld (diff) | |
download | linux-64261f230a9157f5f520ce30ec6827d679375e2f.tar.xz linux-64261f230a9157f5f520ce30ec6827d679375e2f.zip |
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, tstats->rx_bytes += skb->len; u64_stats_update_end(&tstats->syncp); - if (tunnel->net != dev_net(tunnel->dev)) - skb_scrub_packet(skb); - if (tunnel->dev->type == ARPHRD_ETHER) { skb->protocol = eth_type_trans(skb, tunnel->dev); skb_postpull_rcsum(skb, eth_hdr(skb), ETH_HLEN); } else { skb->dev = tunnel->dev; } + + if (tunnel->net != dev_net(tunnel->dev)) + skb_scrub_packet(skb); + gro_cells_receive(&tunnel->gro_cells, skb); return 0; |