[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a81192cd-822d-682a-4ddb-2171d7cac707@kernel.dk>
Date: Fri, 21 Aug 2020 15:10:54 -0600
From: Jens Axboe <axboe@...nel.dk>
To: Luke Hsiao <luke.w.hsiao@...il.com>,
David Miller <davem@...emloft.net>
Cc: netdev@...r.kernel.org, Luke Hsiao <lukehsiao@...gle.com>,
Soheil Hassas Yeganeh <soheil@...gle.com>,
Arjun Roy <arjunroy@...gle.com>,
Eric Dumazet <edumazet@...gle.com>,
Jann Horn <jannh@...gle.com>
Subject: Re: [PATCH net-next 1/2] io_uring: allow tcp ancillary data for
__sys_recvmsg_sock()
On 8/20/20 5:49 PM, Luke Hsiao wrote:
> From: Luke Hsiao <lukehsiao@...gle.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.
>
> Signed-off-by: Soheil Hassas Yeganeh <soheil@...gle.com>
> Signed-off-by: Arjun Roy <arjunroy@...gle.com>
> Acked-by: Eric Dumazet <edumazet@...gle.com>
> Reviewed-by: Jann Horn <jannh@...gle.com>
> Signed-off-by: Luke Hsiao <lukehsiao@...gle.com>
Reviewed-by: Jens Axboe <axboe@...nel.dk>
--
Jens Axboe
Powered by blists - more mailing lists