On 5/9/22 6:06 AM, Dylan Yudaken wrote: > On Sun, 2022-05-01 at 14:56 -0600, Jens Axboe wrote: >> There's no point in having callers provide a kbuf, we're just >> returning >> the address anyway. >> >> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> >> --- >> fs/io_uring.c | 42 ++++++++++++++++++------------------------ >> 1 file changed, 18 insertions(+), 24 deletions(-) >> > > ... > >> @@ -6013,10 +6006,11 @@ static int io_recv(struct io_kiocb *req, >> unsigned int issue_flags) >> return -ENOTSOCK; >> >> if (req->flags & REQ_F_BUFFER_SELECT) { >> - kbuf = io_buffer_select(req, &sr->len, sr->bgid, >> issue_flags); >> - if (IS_ERR(kbuf)) >> - return PTR_ERR(kbuf); >> - buf = u64_to_user_ptr(kbuf->addr); >> + void __user *buf; > > this now shadows the outer buf, and so does not work at all as the buf > value is lost. A bit surprised this did not show up in any tests. Hmm indeed, that is odd! Please do submit your patch separately, thanks. -- Jens Axboe