aboutsummaryrefslogtreecommitdiffstats
path: root/io_uring/register.c
diff options
context:
space:
mode:
authorStefan Roesch <shr@devkernel.io>2023-06-08 09:38:38 -0700
committerJens Axboe <axboe@kernel.dk>2024-02-09 11:54:32 -0700
commitef1186c1a875bfa8a8cbfc2a9670b14b082187a9 (patch)
tree50da04b34a9d10306242d075b462c0ccc683d79f /io_uring/register.c
parentff183d427da0a733b0dbe11bd7acaf2dcb37b4cc (diff)
downloadlinux-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.c13
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;