|
@@ -2122,14 +2122,16 @@ int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,
|
|
|
*/
|
|
|
if (MSG_CMSG_COMPAT & flags) {
|
|
|
err = __sys_recvmsg(sock, (struct msghdr __user *)compat_entry,
|
|
|
- &msg_sys, flags, datagrams);
|
|
|
+ &msg_sys, flags & ~MSG_WAITFORONE,
|
|
|
+ datagrams);
|
|
|
if (err < 0)
|
|
|
break;
|
|
|
err = __put_user(err, &compat_entry->msg_len);
|
|
|
++compat_entry;
|
|
|
} else {
|
|
|
err = __sys_recvmsg(sock, (struct msghdr __user *)entry,
|
|
|
- &msg_sys, flags, datagrams);
|
|
|
+ &msg_sys, flags & ~MSG_WAITFORONE,
|
|
|
+ datagrams);
|
|
|
if (err < 0)
|
|
|
break;
|
|
|
err = put_user(err, &entry->msg_len);
|