Place memory barrier behind the poll_wait call.
void sock_poll_wait(struct file * filp, wait_queue_head_t * wait_address, poll_table * p);
filp
file
wait_address
socket wait queue
p
poll_table
See the comments in the wq_has_sleeper function.