mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-15 01:24:33 +00:00
sock_poll_wait: kill the no longer necessary barrier after poll_wait()
Now that poll_wait() provides a full barrier we can remove smp_mb() from sock_poll_wait(). Also, the poll_does_not_wait() check before poll_wait() just adds the unnecessary confusion, kill it. poll_wait() does the same "p && p->_qproc" check. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Link: https://lore.kernel.org/r/20250107162736.GA18944@redhat.com Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
4e15fa8305
commit
b2849867b3
@ -2291,7 +2291,7 @@ static inline bool skwq_has_sleeper(struct socket_wq *wq)
|
||||
}
|
||||
|
||||
/**
|
||||
* sock_poll_wait - place memory barrier behind the poll_wait call.
|
||||
* sock_poll_wait - wrapper for the poll_wait call.
|
||||
* @filp: file
|
||||
* @sock: socket to wait on
|
||||
* @p: poll_table
|
||||
@ -2301,15 +2301,12 @@ static inline bool skwq_has_sleeper(struct socket_wq *wq)
|
||||
static inline void sock_poll_wait(struct file *filp, struct socket *sock,
|
||||
poll_table *p)
|
||||
{
|
||||
if (!poll_does_not_wait(p)) {
|
||||
poll_wait(filp, &sock->wq.wait, p);
|
||||
/* We need to be sure we are in sync with the
|
||||
* socket flags modification.
|
||||
*
|
||||
* This memory barrier is paired in the wq_has_sleeper.
|
||||
*/
|
||||
smp_mb();
|
||||
}
|
||||
/* Provides a barrier we need to be sure we are in sync
|
||||
* with the socket flags modification.
|
||||
*
|
||||
* This memory barrier is paired in the wq_has_sleeper.
|
||||
*/
|
||||
poll_wait(filp, &sock->wq.wait, p);
|
||||
}
|
||||
|
||||
static inline void skb_set_hash_from_sk(struct sk_buff *skb, struct sock *sk)
|
||||
|
Loading…
x
Reference in New Issue
Block a user