]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - net/ipv6/ipv6_sockglue.c
net: introduce lockdep_is_held and update various places to use it
[mirror_ubuntu-hirsute-kernel.git] / net / ipv6 / ipv6_sockglue.c
index a5557d22f89ea9dde0fb9d33811449fdcf8b3134..4ff4b29894ebfec583c9846e01b599743afcd70f 100644 (file)
@@ -407,7 +407,8 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
                if (optname != IPV6_RTHDR && !ns_capable(net->user_ns, CAP_NET_RAW))
                        break;
 
-               opt = rcu_dereference_protected(np->opt, sock_owned_by_user(sk));
+               opt = rcu_dereference_protected(np->opt,
+                                               lockdep_sock_is_held(sk));
                opt = ipv6_renew_options(sk, opt, optname,
                                         (struct ipv6_opt_hdr __user *)optval,
                                         optlen);
@@ -1124,7 +1125,8 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
                struct ipv6_txoptions *opt;
 
                lock_sock(sk);
-               opt = rcu_dereference_protected(np->opt, sock_owned_by_user(sk));
+               opt = rcu_dereference_protected(np->opt,
+                                               lockdep_sock_is_held(sk));
                len = ipv6_getsockopt_sticky(sk, opt, optname, optval, len);
                release_sock(sk);
                /* check if ipv6_getsockopt_sticky() returns err code */