netfilter: nat: remove unnecessary rcu_read_lock in nf_nat_redirect_ipv{4/6}
authorTaehee Yoo <ap420073@gmail.com>
Tue, 11 Sep 2018 15:20:43 +0000 (00:20 +0900)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 17 Sep 2018 14:11:14 +0000 (16:11 +0200)
nf_nat_redirect_ipv4() and nf_nat_redirect_ipv6() are only called by
netfilter hook point. so that rcu_read_lock and rcu_read_unlock() are
unnecessary.

Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_nat_redirect.c

index adee04a..78a9e64 100644 (file)
@@ -52,13 +52,11 @@ nf_nat_redirect_ipv4(struct sk_buff *skb,
 
                newdst = 0;
 
-               rcu_read_lock();
                indev = __in_dev_get_rcu(skb->dev);
                if (indev && indev->ifa_list) {
                        ifa = indev->ifa_list;
                        newdst = ifa->ifa_local;
                }
-               rcu_read_unlock();
 
                if (!newdst)
                        return NF_DROP;
@@ -97,7 +95,6 @@ nf_nat_redirect_ipv6(struct sk_buff *skb, const struct nf_nat_range2 *range,
                struct inet6_ifaddr *ifa;
                bool addr = false;
 
-               rcu_read_lock();
                idev = __in6_dev_get(skb->dev);
                if (idev != NULL) {
                        read_lock_bh(&idev->lock);
@@ -108,7 +105,6 @@ nf_nat_redirect_ipv6(struct sk_buff *skb, const struct nf_nat_range2 *range,
                        }
                        read_unlock_bh(&idev->lock);
                }
-               rcu_read_unlock();
 
                if (!addr)
                        return NF_DROP;