}
 
 /**
- * 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
 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)