[PATCH net-next] sock: Use sock_owned_by_user_nocheck() instead of sk_lock.owned.
From: Kuniyuki Iwashima <hidden>
Date: 2021-12-08 05:39:39
Replace sk_lock.owned tests with sock_owned_by_user_nocheck(). Signed-off-by: Kuniyuki Iwashima <redacted> --- include/net/sock.h | 5 +++-- net/core/sock.c | 4 ++-- net/llc/llc_proc.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/include/net/sock.h b/include/net/sock.h
index e7c231373875..6b4f818dd594 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h@@ -1635,7 +1635,7 @@ static inline void sk_mem_uncharge(struct sock *sk, int size) static inline void sock_release_ownership(struct sock *sk) { - if (sk->sk_lock.owned) { + if (sock_owned_by_user_nocheck(sk) { sk->sk_lock.owned = 0; /* The sk_lock has mutex_unlock() semantics: */
@@ -1774,7 +1774,8 @@ static inline bool sock_allow_reclassification(const struct sock *csk) { struct sock *sk = (struct sock *)csk; - return !sk->sk_lock.owned && !spin_is_locked(&sk->sk_lock.slock); + return !sock_owned_by_user_nocheck(sk) && + !spin_is_locked(&sk->sk_lock.slock); } struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
diff --git a/net/core/sock.c b/net/core/sock.c
index 4a499d255f40..764205a4d8c8 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c@@ -3292,7 +3292,7 @@ void lock_sock_nested(struct sock *sk, int subclass) might_sleep(); spin_lock_bh(&sk->sk_lock.slock); - if (sk->sk_lock.owned) + if (sock_owned_by_user_nocheck(sk)) __lock_sock(sk); sk->sk_lock.owned = 1; spin_unlock_bh(&sk->sk_lock.slock);
@@ -3323,7 +3323,7 @@ bool __lock_sock_fast(struct sock *sk) __acquires(&sk->sk_lock.slock) might_sleep(); spin_lock_bh(&sk->sk_lock.slock); - if (!sk->sk_lock.owned) { + if (!sock_owned_by_user_nocheck(sk)) { /* * Fast path return with bottom halves disabled and * sock::sk_lock.slock held.
diff --git a/net/llc/llc_proc.c b/net/llc/llc_proc.c
index 0ff490a73fae..07e9abb5978a 100644
--- a/net/llc/llc_proc.c
+++ b/net/llc/llc_proc.c@@ -195,7 +195,7 @@ static int llc_seq_core_show(struct seq_file *seq, void *v) timer_pending(&llc->pf_cycle_timer.timer), timer_pending(&llc->rej_sent_timer.timer), timer_pending(&llc->busy_state_timer.timer), - !!sk->sk_backlog.tail, !!sk->sk_lock.owned); + !!sk->sk_backlog.tail, sock_owned_by_user_nocheck(sk)); out: return 0; }
--
2.30.2