From: Luke Hsiao <luke.w.hs...@gmail.com> Date: Fri, 21 Aug 2020 21:41:04 -0700
> From: Luke Hsiao <lukehs...@google.com> > > For TCP tx zero-copy, the kernel notifies the process of completions by > queuing completion notifications on the socket error queue. This patch > allows reading these notifications via recvmsg to support TCP tx > zero-copy. > > Ancillary data was originally disallowed due to privilege escalation > via io_uring's offloading of sendmsg() onto a kernel thread with kernel > credentials (https://crbug.com/project-zero/1975). So, we must ensure > that the socket type is one where the ancillary data types that are > delivered on recvmsg are plain data (no file descriptors or values that > are translated based on the identity of the calling process). > > This was tested by using io_uring to call recvmsg on the MSG_ERRQUEUE > with tx zero-copy enabled. Before this patch, we received -EINVALID from > this specific code path. After this patch, we could read tcp tx > zero-copy completion notifications from the MSG_ERRQUEUE. Would be great to see such test programs added to selftests instead of vaguely being described. > Signed-off-by: Soheil Hassas Yeganeh <soh...@google.com> > Signed-off-by: Arjun Roy <arjun...@google.com> > Acked-by: Eric Dumazet <eduma...@google.com> > Reviewed-by: Jann Horn <ja...@google.com> > Reviewed-by: Jens Axboe <ax...@kernel.dk> > Signed-off-by: Luke Hsiao <lukehs...@google.com> Applied.