]> Pileus Git - ~andy/linux/blobdiff - net/ipv6/ip6_gre.c
tunnels: harmonize cleanup done on skb on xmit path
[~andy/linux] / net / ipv6 / ip6_gre.c
index f2d0a42f80576b7bbeaebe7009fe6a476fb07236..f179ff1f56ec061270993de9cf0197819dbba7b1 100644 (file)
@@ -694,6 +694,8 @@ static netdev_tx_t ip6gre_xmit2(struct sk_buff *skb,
                        tunnel->err_count = 0;
        }
 
+       skb_scrub_packet(skb, !net_eq(tunnel->net, dev_net(dev)));
+
        max_headroom = LL_RESERVED_SPACE(tdev) + gre_hlen + dst->header_len;
 
        if (skb_headroom(skb) < max_headroom || skb_shared(skb) ||
@@ -710,8 +712,6 @@ static netdev_tx_t ip6gre_xmit2(struct sk_buff *skb,
                skb = new_skb;
        }
 
-       skb_dst_drop(skb);
-
        if (fl6->flowi6_mark) {
                skb_dst_set(skb, dst);
                ndst = NULL;