|
@@ -1914,8 +1914,10 @@ static int unix_dgram_recvmsg(struct socket *sock, struct msghdr *msg,
|
|
|
goto out_unlock;
|
|
|
}
|
|
|
|
|
|
- wake_up_interruptible_sync_poll(&u->peer_wait,
|
|
|
- POLLOUT | POLLWRNORM | POLLWRBAND);
|
|
|
+ if (wq_has_sleeper(&u->peer_wait))
|
|
|
+ wake_up_interruptible_sync_poll(&u->peer_wait,
|
|
|
+ POLLOUT | POLLWRNORM |
|
|
|
+ POLLWRBAND);
|
|
|
|
|
|
if (msg->msg_name)
|
|
|
unix_copy_addr(msg, skb->sk);
|