aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/ip_gre.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/ip_gre.c')
-rw-r--r--net/ipv4/ip_gre.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index fe381d12ecdd..498cf69c7977 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -538,7 +538,6 @@ static int ipgre_rcv(struct sk_buff *skb)
538 struct ip_tunnel *tunnel; 538 struct ip_tunnel *tunnel;
539 int offset = 4; 539 int offset = 4;
540 __be16 gre_proto; 540 __be16 gre_proto;
541 unsigned int len;
542 541
543 if (!pskb_may_pull(skb, 16)) 542 if (!pskb_may_pull(skb, 16))
544 goto drop_nolock; 543 goto drop_nolock;
@@ -629,8 +628,6 @@ static int ipgre_rcv(struct sk_buff *skb)
629 tunnel->i_seqno = seqno + 1; 628 tunnel->i_seqno = seqno + 1;
630 } 629 }
631 630
632 len = skb->len;
633
634 /* Warning: All skb pointers will be invalidated! */ 631 /* Warning: All skb pointers will be invalidated! */
635 if (tunnel->dev->type == ARPHRD_ETHER) { 632 if (tunnel->dev->type == ARPHRD_ETHER) {
636 if (!pskb_may_pull(skb, ETH_HLEN)) { 633 if (!pskb_may_pull(skb, ETH_HLEN)) {
@@ -644,11 +641,7 @@ static int ipgre_rcv(struct sk_buff *skb)
644 skb_postpull_rcsum(skb, eth_hdr(skb), ETH_HLEN); 641 skb_postpull_rcsum(skb, eth_hdr(skb), ETH_HLEN);
645 } 642 }
646 643
647 stats->rx_packets++; 644 skb_tunnel_rx(skb, tunnel->dev);
648 stats->rx_bytes += len;
649 skb->dev = tunnel->dev;
650 skb_dst_drop(skb);
651 nf_reset(skb);
652 645
653 skb_reset_network_header(skb); 646 skb_reset_network_header(skb);
654 ipgre_ecn_decapsulate(iph, skb); 647 ipgre_ecn_decapsulate(iph, skb);