diff options
Diffstat (limited to 'net/ipv6/ip6_tunnel.c')
-rw-r--r-- | net/ipv6/ip6_tunnel.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index ecbcdbd4bc4f..55999d923f26 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c | |||
@@ -802,14 +802,12 @@ static int ip6_tnl_rcv(struct sk_buff *skb, __u16 protocol, | |||
802 | rcu_read_unlock(); | 802 | rcu_read_unlock(); |
803 | goto discard; | 803 | goto discard; |
804 | } | 804 | } |
805 | secpath_reset(skb); | ||
806 | skb->mac_header = skb->network_header; | 805 | skb->mac_header = skb->network_header; |
807 | skb_reset_network_header(skb); | 806 | skb_reset_network_header(skb); |
808 | skb->protocol = htons(protocol); | 807 | skb->protocol = htons(protocol); |
809 | skb->pkt_type = PACKET_HOST; | ||
810 | memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); | 808 | memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); |
811 | 809 | ||
812 | __skb_tunnel_rx(skb, t->dev); | 810 | __skb_tunnel_rx(skb, t->dev, t->net); |
813 | 811 | ||
814 | err = dscp_ecn_decapsulate(t, ipv6h, skb); | 812 | err = dscp_ecn_decapsulate(t, ipv6h, skb); |
815 | if (unlikely(err)) { | 813 | if (unlikely(err)) { |
@@ -829,9 +827,6 @@ static int ip6_tnl_rcv(struct sk_buff *skb, __u16 protocol, | |||
829 | tstats->rx_packets++; | 827 | tstats->rx_packets++; |
830 | tstats->rx_bytes += skb->len; | 828 | tstats->rx_bytes += skb->len; |
831 | 829 | ||
832 | if (!net_eq(t->net, dev_net(t->dev))) | ||
833 | skb_scrub_packet(skb, true); | ||
834 | |||
835 | netif_rx(skb); | 830 | netif_rx(skb); |
836 | 831 | ||
837 | rcu_read_unlock(); | 832 | rcu_read_unlock(); |