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.

Reply via email to