io_uring, IORING_OP_RECVMSG and ancillary data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Tried to use io_uring with OP_RECVMSG with ancillary buffers (for my
particular use case I'm using SO_TIMESTAMP for incoming UDP packets).

These submissions fail with EINVAL due to the check in __sys_recvmsg_sock().

The following hack fixes the problem for me and I get valid timestamps
back. Not suggesting this is the real fix as I'm not sure what the
implications of this is.

Any insight into this would be much appreciated.

Thanks,
Andreas

diff --git a/net/socket.c b/net/socket.c
index 2dd739fba866..689f41f4156e 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -2637,10 +2637,6 @@ long __sys_recvmsg_sock(struct socket *sock,
struct msghdr *msg,
                        struct user_msghdr __user *umsg,
                        struct sockaddr __user *uaddr, unsigned int flags)
 {
-       /* disallow ancillary data requests from this path */
-       if (msg->msg_control || msg->msg_controllen)
-               return -EINVAL;
-
        return ____sys_recvmsg(sock, msg, umsg, uaddr, flags, 0);
 }



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux