Re: FAILED: patch "[PATCH] io_uring: fix provided buffer import" failed to apply to 5.18-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 05, 2022 at 08:38:19AM -0600, Jens Axboe wrote:
> On 7/5/22 8:36 AM, Dylan Yudaken wrote:
> > On Mon, 2022-07-04 at 15:24 +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
> >>
> >> The patch below does not apply to the 5.18-stable tree.
> >> If someone wants it applied there, or to any other stable or longterm
> >> tree, then please email the backport, including the original git
> >> commit
> >> id to <stable@xxxxxxxxxxxxxxx>.
> >>
> >> thanks,
> >>
> >> greg k-h
> >>
> >> ------------------ original commit in Linus's tree ------------------
> >>
> >> From 09007af2b627f0f195c6c53c4829b285cc3990ec Mon Sep 17 00:00:00
> >> 2001
> >> From: Dylan Yudaken <dylany@xxxxxx>
> >> Date: Thu, 30 Jun 2022 06:20:06 -0700
> >> Subject: [PATCH] io_uring: fix provided buffer import
> >>
> >> io_import_iovec uses the s pointer, but this was changed immediately
> >> after the iovec was re-imported and so it was imported into the wrong
> >> place.
> >>
> >> Change the ordering.
> >>
> >> Fixes: 2be2eb02e2f5 ("io_uring: ensure reads re-import for selected
> >> buffers")
> >> Signed-off-by: Dylan Yudaken <dylany@xxxxxx>
> >> Link:
> >> https://lore.kernel.org/r/20220630132006.2825668-1-dylany@xxxxxx
> >> [axboe: ensure we don't half-import as well]
> >> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>
> >>
> >> diff --git a/fs/io_uring.c b/fs/io_uring.c
> >> index aeb042ba5cc5..0d491ad15b66 100644
> >> --- a/fs/io_uring.c
> >> +++ b/fs/io_uring.c
> >> @@ -4318,18 +4318,19 @@ static int io_read(struct io_kiocb *req,
> >> unsigned int issue_flags)
> >>                 if (unlikely(ret < 0))
> >>                         return ret;
> >>         } else {
> >> +               rw = req->async_data;
> >> +               s = &rw->s;
> >> +
> >>                 /*
> >>                  * Safe and required to re-import if we're using
> >> provided
> >>                  * buffers, as we dropped the selected one before
> >> retry.
> >>                  */
> >> -               if (req->flags & REQ_F_BUFFER_SELECT) {
> >> +               if (io_do_buffer_select(req)) {
> >>                         ret = io_import_iovec(READ, req, &iovec, s,
> >> issue_flags);
> >>                         if (unlikely(ret < 0))
> >>                                 return ret;
> >>                 }
> >>  
> >> -               rw = req->async_data;
> >> -               s = &rw->s;
> >>                 /*
> >>                  * We come here from an earlier attempt, restore our
> >> state to
> >>                  * match in case it doesn't. It's cheap enough that
> >> we don't
> >>
> > 
> > Hi,
> > 
> > I have attached a fixed patch which fixes the problem on 5.18
> 
> Looks good to me, thanks Dylan!

Now queued up, thanks.

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux