[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <152171191207.18202.9708429934457435635.stgit@localhost.localdomain>
Date: Thu, 22 Mar 2018 12:45:12 +0300
From: Kirill Tkhai <ktkhai@...tuozzo.com>
To: davem@...emloft.net, yoshfuji@...ux-ipv6.org, edumazet@...gle.com,
yanhaishuang@...s.chinamobile.com, nikolay@...ulusnetworks.com,
yotamg@...lanox.com, soheil@...gle.com, avagin@...tuozzo.com,
nicolas.dichtel@...nd.com, ebiederm@...ssion.com, fw@...len.de,
roman.kapl@...go.com, netdev@...r.kernel.org,
xiyou.wangcong@...il.com, dvyukov@...gle.com,
andreyknvl@...gle.com, lkp@...el.com, ktkhai@...tuozzo.com
Subject: [PATCH net-next v3 2/5] net: Move IP_ROUTER_ALERT out of
lock_sock(sk)
ip_ra_control() does not need sk_lock. Who are the another
users of ip_ra_chain? ip_mroute_setsockopt() doesn't take
sk_lock, while parallel IP_ROUTER_ALERT syscalls are
synchronized by ip_ra_lock. So, we may move this command
out of sk_lock.
Signed-off-by: Kirill Tkhai <ktkhai@...tuozzo.com>
---
net/ipv4/ip_sockglue.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
index be7c3b71914d..dcbf6afe27e7 100644
--- a/net/ipv4/ip_sockglue.c
+++ b/net/ipv4/ip_sockglue.c
@@ -647,6 +647,8 @@ static int do_ip_setsockopt(struct sock *sk, int level,
/* If optlen==0, it is equivalent to val == 0 */
+ if (optname == IP_ROUTER_ALERT)
+ return ip_ra_control(sk, val ? 1 : 0, NULL);
if (ip_mroute_opt(optname))
return ip_mroute_setsockopt(sk, optname, optval, optlen);
@@ -1157,9 +1159,6 @@ static int do_ip_setsockopt(struct sock *sk, int level,
goto e_inval;
inet->mc_all = val;
break;
- case IP_ROUTER_ALERT:
- err = ip_ra_control(sk, val ? 1 : 0, NULL);
- break;
case IP_FREEBIND:
if (optlen < 1)
Powered by blists - more mailing lists