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); }