Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
[firefly-linux-kernel-4.4.55.git] / net / ipv6 / sit.c
index 3bd1bfc01f8523c9ad0e9698f24974fbf1cc5171..3ed54ffd8d50dfa1ccf5b4b539c5461fae29c4fb 100644 (file)
@@ -545,7 +545,6 @@ static int ipip6_err(struct sk_buff *skb, u32 info)
 
        err = -ENOENT;
 
-       rcu_read_lock();
        t = ipip6_tunnel_lookup(dev_net(skb->dev),
                                skb->dev,
                                iph->daddr,
@@ -579,7 +578,6 @@ static int ipip6_err(struct sk_buff *skb, u32 info)
                t->err_count = 1;
        t->err_time = jiffies;
 out:
-       rcu_read_unlock();
        return err;
 }
 
@@ -599,7 +597,6 @@ static int ipip6_rcv(struct sk_buff *skb)
 
        iph = ip_hdr(skb);
 
-       rcu_read_lock();
        tunnel = ipip6_tunnel_lookup(dev_net(skb->dev), skb->dev,
                                     iph->saddr, iph->daddr);
        if (tunnel != NULL) {
@@ -615,7 +612,6 @@ static int ipip6_rcv(struct sk_buff *skb)
                if ((tunnel->dev->priv_flags & IFF_ISATAP) &&
                    !isatap_chksrc(skb, iph, tunnel)) {
                        tunnel->dev->stats.rx_errors++;
-                       rcu_read_unlock();
                        kfree_skb(skb);
                        return 0;
                }
@@ -630,12 +626,10 @@ static int ipip6_rcv(struct sk_buff *skb)
 
                netif_rx(skb);
 
-               rcu_read_unlock();
                return 0;
        }
 
        /* no tunnel matched,  let upstream know, ipsec may handle it */
-       rcu_read_unlock();
        return 1;
 out:
        kfree_skb(skb);