[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200323181814.87661-2-kuniyu@amazon.co.jp>
Date: Tue, 24 Mar 2020 03:18:13 +0900
From: Kuniyuki Iwashima <kuniyu@...zon.co.jp>
To: "David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Eric Dumazet <edumazet@...gle.com>,
Gerrit Renker <gerrit@....abdn.ac.uk>,
Alexey Kuznetsov <kuznet@....inr.ac.ru>,
"Hideaki YOSHIFUJI" <yoshfuji@...ux-ipv6.org>
CC: <dccp@...r.kernel.org>, <netdev@...r.kernel.org>,
Kuniyuki Iwashima <kuni1840@...il.com>,
Kuniyuki Iwashima <kuniyu@...zon.co.jp>,
<osa-contribution-log@...zon.com>
Subject: [PATCH net-next 1/2] tcp/dccp: Move initialisation of refcounted into if block.
The refcounted is initialised at most three times.
- __inet_lookup_skb() sets it true.
- skb_steal_sock() is false and __inet_lookup() sets it true.
- __inet_lookup_established() is false and __inet_lookup() sets it false.
We do not need to initialise refcounted again and again, so we should do
it just before return.
Signed-off-by: Kuniyuki Iwashima <kuniyu@...zon.co.jp>
---
include/net/inet6_hashtables.h | 11 +++++++----
include/net/inet_hashtables.h | 11 +++++++----
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/include/net/inet6_hashtables.h b/include/net/inet6_hashtables.h
index fe96bf247aac..9b6c97100d54 100644
--- a/include/net/inet6_hashtables.h
+++ b/include/net/inet6_hashtables.h
@@ -70,9 +70,11 @@ static inline struct sock *__inet6_lookup(struct net *net,
struct sock *sk = __inet6_lookup_established(net, hashinfo, saddr,
sport, daddr, hnum,
dif, sdif);
- *refcounted = true;
- if (sk)
+ if (sk) {
+ *refcounted = true;
return sk;
+ }
+
*refcounted = false;
return inet6_lookup_listener(net, hashinfo, skb, doff, saddr, sport,
daddr, hnum, dif, sdif);
@@ -87,9 +89,10 @@ static inline struct sock *__inet6_lookup_skb(struct inet_hashinfo *hashinfo,
{
struct sock *sk = skb_steal_sock(skb);
- *refcounted = true;
- if (sk)
+ if (sk) {
+ *refcounted = true;
return sk;
+ }
return __inet6_lookup(dev_net(skb_dst(skb)->dev), hashinfo, skb,
doff, &ipv6_hdr(skb)->saddr, sport,
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h
index d0019d3395cf..aa859bf8607b 100644
--- a/include/net/inet_hashtables.h
+++ b/include/net/inet_hashtables.h
@@ -345,9 +345,11 @@ static inline struct sock *__inet_lookup(struct net *net,
sk = __inet_lookup_established(net, hashinfo, saddr, sport,
daddr, hnum, dif, sdif);
- *refcounted = true;
- if (sk)
+ if (sk) {
+ *refcounted = true;
return sk;
+ }
+
*refcounted = false;
return __inet_lookup_listener(net, hashinfo, skb, doff, saddr,
sport, daddr, hnum, dif, sdif);
@@ -382,9 +384,10 @@ static inline struct sock *__inet_lookup_skb(struct inet_hashinfo *hashinfo,
struct sock *sk = skb_steal_sock(skb);
const struct iphdr *iph = ip_hdr(skb);
- *refcounted = true;
- if (sk)
+ if (sk) {
+ *refcounted = true;
return sk;
+ }
return __inet_lookup(dev_net(skb_dst(skb)->dev), hashinfo, skb,
doff, iph->saddr, sport,
--
2.17.2 (Apple Git-113)
Powered by blists - more mailing lists