diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-05-23 22:41:49 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-05-23 22:41:49 +0200 |
commit | 483a351ed4d464265aed61cab4a990b0023f8400 (patch) | |
tree | 5e7658d7bab3bda7905019b1c6dea1a417dfab61 /io_uring | |
parent | Merge tag 'regulator-fix-v6.10-merge-window' of git://git.kernel.org/pub/scm/... (diff) | |
parent | io_uring: remove checks for NULL 'sq_offset' (diff) | |
download | linux-483a351ed4d464265aed61cab4a990b0023f8400.tar.xz linux-483a351ed4d464265aed61cab4a990b0023f8400.zip |
Merge tag 'io_uring-6.10-20240523' of git://git.kernel.dk/linux
Pull io_uring fixes from Jens Axboe:
"Single fix here for a regression in 6.9, and then a simple cleanup
removing some dead code"
* tag 'io_uring-6.10-20240523' of git://git.kernel.dk/linux:
io_uring: remove checks for NULL 'sq_offset'
io_uring/sqpoll: ensure that normal task_work is also run timely
Diffstat (limited to 'io_uring')
-rw-r--r-- | io_uring/io_uring.c | 6 | ||||
-rw-r--r-- | io_uring/sqpoll.c | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index 86fd72f6a1c2..816e93e7f949 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -2597,13 +2597,11 @@ static unsigned long rings_size(struct io_ring_ctx *ctx, unsigned int sq_entries #endif if (ctx->flags & IORING_SETUP_NO_SQARRAY) { - if (sq_offset) - *sq_offset = SIZE_MAX; + *sq_offset = SIZE_MAX; return off; } - if (sq_offset) - *sq_offset = off; + *sq_offset = off; sq_array_size = array_size(sizeof(u32), sq_entries); if (sq_array_size == SIZE_MAX) diff --git a/io_uring/sqpoll.c b/io_uring/sqpoll.c index 554c7212aa46..b3722e5275e7 100644 --- a/io_uring/sqpoll.c +++ b/io_uring/sqpoll.c @@ -238,11 +238,13 @@ static unsigned int io_sq_tw(struct llist_node **retry_list, int max_entries) if (*retry_list) { *retry_list = io_handle_tw_list(*retry_list, &count, max_entries); if (count >= max_entries) - return count; + goto out; max_entries -= count; } - *retry_list = tctx_task_work_run(tctx, max_entries, &count); +out: + if (task_work_pending(current)) + task_work_run(); return count; } |