diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2023-05-07 10:00:09 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2023-05-07 10:00:09 -0700 |
commit | 03e5cb7b50feb687508946a702febaba24c77f0b (patch) | |
tree | 3003da4195f9aa51814c26e263cdee7da46fb181 /io_uring/rsrc.c | |
parent | fc4354c6e5c21257cf4a50b32f7c11c7d65c55b3 (diff) | |
parent | d2b7fa6174bc4260e496cbf84375c73636914641 (diff) |
Merge tag 'for-6.4/io_uring-2023-05-07' of git://git.kernel.dk/linux
Pull more io_uring updates from Jens Axboe:
"Nothing major in here, just two different parts:
- A small series from Breno that enables passing the full SQE down
for ->uring_cmd().
This is a prerequisite for enabling full network socket operations.
Queued up a bit late because of some stylistic concerns that got
resolved, would be nice to have this in 6.4-rc1 so the dependent
work will be easier to handle for 6.5.
- Fix for the huge page coalescing, which was a regression introduced
in the 6.3 kernel release (Tobias)"
* tag 'for-6.4/io_uring-2023-05-07' of git://git.kernel.dk/linux:
io_uring: Remove unnecessary BUILD_BUG_ON
io_uring: Pass whole sqe to commands
io_uring: Create a helper to return the SQE size
io_uring/rsrc: check for nonconsecutive pages
Diffstat (limited to 'io_uring/rsrc.c')
-rw-r--r-- | io_uring/rsrc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c index d4c91393e0d3..d46f72a5ef73 100644 --- a/io_uring/rsrc.c +++ b/io_uring/rsrc.c @@ -1116,7 +1116,12 @@ static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov, if (nr_pages > 1) { folio = page_folio(pages[0]); for (i = 1; i < nr_pages; i++) { - if (page_folio(pages[i]) != folio) { + /* + * Pages must be consecutive and on the same folio for + * this to work + */ + if (page_folio(pages[i]) != folio || + pages[i] != pages[i - 1] + 1) { folio = NULL; break; } |