History

poll_wait: kill the obsolete wait_address check

This check is historical and no longer needed, wait_address is never NULL. These days we rely on the poll_table->_qproc check. NULL if select/poll is not going to sleep, or it already has a data to report, or all waiters have already been registered after the 1st iteration. However, poll_table *p can be NULL, see p9_fd_poll() for example, so we can't remove the "p != NULL" check.

Oleg Nesterov committed 1 year ago

Commit 10b02a21 parent cacd9ae1 file · +1 −1Browse files

Unified · Split

include/linux/poll.h+1−1
@@ -41,7 +41,7 @@ typedef struct poll_table_struct { · 40 unmodified lines
41 41
42static inline void poll_wait(struct file * filp, wait_queue_head_t * wait_address, poll_table *p)42static inline void poll_wait(struct file * filp, wait_queue_head_t * wait_address, poll_table *p)
43{43{
44 if (p && p->_qproc && wait_address) {44 if (p && p->_qproc) {
45 p->_qproc(filp, wait_address, p);45 p->_qproc(filp, wait_address, p);
46 /*46 /*
47 * This memory barrier is paired in the wq_has_sleeper().47 * This memory barrier is paired in the wq_has_sleeper().