@@ -417,7 +417,7 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
if (needs_rtnl)
rtnl_lock();
- lock_sock(sk);
+ lock_sock_sockopt(sk, optval);
switch (optname) {
@@ -994,14 +994,14 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
break;
}
- release_sock(sk);
+ release_sock_sockopt(sk, optval);
if (needs_rtnl)
rtnl_unlock();
return retv;
e_inval:
- release_sock(sk);
+ release_sock_sockopt(sk, optval);
if (needs_rtnl)
rtnl_unlock();
return -EINVAL;
Similar to the earlier patch that avoids sock_setsockopt() from taking sk lock when called from bpf. This patch changes do_ipv6_setsockopt() to use the {lock,release}_sock_sockopt(). Signed-off-by: Martin KaFai Lau <kafai@fb.com> --- net/ipv6/ipv6_sockglue.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)