[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200824.161641.333865613724287036.davem@davemloft.net>
Date: Mon, 24 Aug 2020 16:16:41 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: luke.w.hsiao@...il.com
Cc: netdev@...r.kernel.org, axboe@...nel.dk, kuba@...nel.org,
lukehsiao@...gle.com, soheil@...gle.com, arjunroy@...gle.com,
edumazet@...gle.com, jannh@...gle.com
Subject: Re: [PATCH net-next v3 1/2] io_uring: allow tcp ancillary data for
__sys_recvmsg_sock()
From: Luke Hsiao <luke.w.hsiao@...il.com>
Date: Fri, 21 Aug 2020 21:41:04 -0700
> 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.
Would be great to see such test programs added to selftests instead of
vaguely being described.
> 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>
> Reviewed-by: Jens Axboe <axboe@...nel.dk>
> Signed-off-by: Luke Hsiao <lukehsiao@...gle.com>
Applied.
Powered by blists - more mailing lists