diff options
Diffstat (limited to 'net/socket.c')
| -rw-r--r-- | net/socket.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c index ae904b58d9f..ad2e8153c61 100644 --- a/net/socket.c +++ b/net/socket.c @@ -2134,6 +2134,10 @@ int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,  			break;  		++datagrams; +		/* MSG_WAITFORONE turns on MSG_DONTWAIT after one packet */ +		if (flags & MSG_WAITFORONE) +			flags |= MSG_DONTWAIT; +  		if (timeout) {  			ktime_get_ts(timeout);  			*timeout = timespec_sub(end_time, *timeout);  |