From: Pavel Begunkov Date: Thu, 28 Apr 2022 10:58:17 +0000 (+0100) Subject: sock: dedup sock_def_write_space wmem_alloc checks X-Git-Tag: v6.6.17~7459^2~216^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=14bfee9b62702ccac3014f1291943fabebafd5bc;p=platform%2Fkernel%2Flinux-rpi.git sock: dedup sock_def_write_space wmem_alloc checks Except for minor rounding differences the first ->sk_wmem_alloc test in sock_def_write_space() is a hand coded version of sock_writeable(). Replace it with the helper, and also kill the following if duplicating the check. Signed-off-by: Pavel Begunkov Signed-off-by: David S. Miller --- diff --git a/net/core/sock.c b/net/core/sock.c index b164618..6ad22fc 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3191,15 +3191,14 @@ static void sock_def_write_space(struct sock *sk) /* Do not wake up a writer until he can make "significant" * progress. --DaveM */ - if ((refcount_read(&sk->sk_wmem_alloc) << 1) <= READ_ONCE(sk->sk_sndbuf)) { + if (sock_writeable(sk)) { wq = rcu_dereference(sk->sk_wq); if (skwq_has_sleeper(wq)) wake_up_interruptible_sync_poll(&wq->wait, EPOLLOUT | EPOLLWRNORM | EPOLLWRBAND); /* Should agree with poll, otherwise some programs break */ - if (sock_writeable(sk)) - sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT); + sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT); } rcu_read_unlock();