diff options
author | Stefan Roesch <shr@devkernel.io> | 2023-06-08 09:38:38 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2024-02-09 11:54:32 -0700 |
commit | ef1186c1a875bfa8a8cbfc2a9670b14b082187a9 (patch) | |
tree | 50da04b34a9d10306242d075b462c0ccc683d79f /io_uring/register.c | |
parent | ff183d427da0a733b0dbe11bd7acaf2dcb37b4cc (diff) | |
download | linux-ef1186c1a875bfa8a8cbfc2a9670b14b082187a9.tar.gz |
io_uring: add register/unregister napi function
This adds an api to register and unregister the napi for io-uring. If
the arg value is specified when unregistering, the current napi setting
for the busy poll timeout is copied into the user structure. If this is
not required, NULL can be passed as the arg value.
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/r/20230608163839.2891748-7-shr@devkernel.io
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/register.c')
-rw-r--r-- | io_uring/register.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/io_uring/register.c b/io_uring/register.c index 5e62c12089965..99c37775f974c 100644 --- a/io_uring/register.c +++ b/io_uring/register.c @@ -26,6 +26,7 @@ #include "register.h" #include "cancel.h" #include "kbuf.h" +#include "napi.h" #define IORING_MAX_RESTRICTIONS (IORING_RESTRICTION_LAST + \ IORING_REGISTER_LAST + IORING_OP_LAST) @@ -550,6 +551,18 @@ static int __io_uring_register(struct io_ring_ctx *ctx, unsigned opcode, break; ret = io_register_pbuf_status(ctx, arg); break; + case IORING_REGISTER_NAPI: + ret = -EINVAL; + if (!arg || nr_args != 1) + break; + ret = io_register_napi(ctx, arg); + break; + case IORING_UNREGISTER_NAPI: + ret = -EINVAL; + if (nr_args != 1) + break; + ret = io_unregister_napi(ctx, arg); + break; default: ret = -EINVAL; break; |