From: "D. Wythe" <alibuda@xxxxxxxxxxxxxxxxx> Refactoring smc_accept_poll to extract a common function for determining whether the accept_queue is empty. Signed-off-by: D. Wythe <alibuda@xxxxxxxxxxxxxxxxx> --- net/smc/af_smc.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c index e87af68..7966d06 100644 --- a/net/smc/af_smc.c +++ b/net/smc/af_smc.c @@ -2832,17 +2832,16 @@ static int smc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, return rc; } -static __poll_t smc_accept_poll(struct sock *parent) +static inline bool smc_accept_queue_empty(struct sock *sk) { - struct smc_sock *isk = smc_sk(parent); - __poll_t mask = 0; - - spin_lock(&isk->accept_q_lock); - if (!list_empty(&isk->accept_q)) - mask = EPOLLIN | EPOLLRDNORM; - spin_unlock(&isk->accept_q_lock); + return list_empty(&smc_sk(sk)->accept_q); +} - return mask; +static __poll_t smc_accept_poll(struct sock *parent) +{ + if (!smc_accept_queue_empty(parent)) + return EPOLLIN | EPOLLRDNORM; + return 0; } static __poll_t smc_poll(struct file *file, struct socket *sock, -- 1.8.3.1