From: Pavel Begunkov <asml.silence@gmail.com>
To: io-uring@vger.kernel.org
Cc: asml.silence@gmail.com
Subject: [RFC v1 2/3] io_uring: add macro for features and valid setup flags
Date: Wed, 27 Aug 2025 14:21:13 +0100 [thread overview]
Message-ID: <3d5f99d4aafbcc66fbd90cde77470f0fe1641291.1756300192.git.asml.silence@gmail.com> (raw)
In-Reply-To: <cover.1756300192.git.asml.silence@gmail.com>
The next patch will need the mask for available features and setup
flags. Add a macro constants for them to io_uring.h.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
io_uring/io_uring.c | 21 ++-------------------
io_uring/io_uring.h | 20 ++++++++++++++++++++
2 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index 4ef69dd58734..8aac044cd53d 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -3808,15 +3808,7 @@ static __cold int io_uring_create(unsigned entries, struct io_uring_params *p,
if (ret)
goto err;
- p->features = IORING_FEAT_SINGLE_MMAP | IORING_FEAT_NODROP |
- IORING_FEAT_SUBMIT_STABLE | IORING_FEAT_RW_CUR_POS |
- IORING_FEAT_CUR_PERSONALITY | IORING_FEAT_FAST_POLL |
- IORING_FEAT_POLL_32BITS | IORING_FEAT_SQPOLL_NONFIXED |
- IORING_FEAT_EXT_ARG | IORING_FEAT_NATIVE_WORKERS |
- IORING_FEAT_RSRC_TAGS | IORING_FEAT_CQE_SKIP |
- IORING_FEAT_LINKED_FILE | IORING_FEAT_REG_REG_RING |
- IORING_FEAT_RECVSEND_BUNDLE | IORING_FEAT_MIN_TIMEOUT |
- IORING_FEAT_RW_ATTR | IORING_FEAT_NO_IOWAIT;
+ p->features = IORING_FEATURES;
if (copy_to_user(params, p, sizeof(*p))) {
ret = -EFAULT;
@@ -3876,17 +3868,8 @@ static long io_uring_setup(u32 entries, struct io_uring_params __user *params)
return -EINVAL;
}
- if (p.flags & ~(IORING_SETUP_IOPOLL | IORING_SETUP_SQPOLL |
- IORING_SETUP_SQ_AFF | IORING_SETUP_CQSIZE |
- IORING_SETUP_CLAMP | IORING_SETUP_ATTACH_WQ |
- IORING_SETUP_R_DISABLED | IORING_SETUP_SUBMIT_ALL |
- IORING_SETUP_COOP_TASKRUN | IORING_SETUP_TASKRUN_FLAG |
- IORING_SETUP_SQE128 | IORING_SETUP_CQE32 |
- IORING_SETUP_SINGLE_ISSUER | IORING_SETUP_DEFER_TASKRUN |
- IORING_SETUP_NO_MMAP | IORING_SETUP_REGISTERED_FD_ONLY |
- IORING_SETUP_NO_SQARRAY | IORING_SETUP_HYBRID_IOPOLL))
+ if (p.flags & ~IORING_VALID_SETUP_FLAGS)
return -EINVAL;
-
return io_uring_create(entries, &p, params);
}
diff --git a/io_uring/io_uring.h b/io_uring/io_uring.h
index abc6de227f74..37216d6eb102 100644
--- a/io_uring/io_uring.h
+++ b/io_uring/io_uring.h
@@ -18,6 +18,26 @@
#include <trace/events/io_uring.h>
#endif
+#define IORING_FEATURES (IORING_FEAT_SINGLE_MMAP | IORING_FEAT_NODROP |\
+ IORING_FEAT_SUBMIT_STABLE | IORING_FEAT_RW_CUR_POS |\
+ IORING_FEAT_CUR_PERSONALITY | IORING_FEAT_FAST_POLL |\
+ IORING_FEAT_POLL_32BITS | IORING_FEAT_SQPOLL_NONFIXED |\
+ IORING_FEAT_EXT_ARG | IORING_FEAT_NATIVE_WORKERS |\
+ IORING_FEAT_RSRC_TAGS | IORING_FEAT_CQE_SKIP |\
+ IORING_FEAT_LINKED_FILE | IORING_FEAT_REG_REG_RING |\
+ IORING_FEAT_RECVSEND_BUNDLE | IORING_FEAT_MIN_TIMEOUT |\
+ IORING_FEAT_RW_ATTR | IORING_FEAT_NO_IOWAIT)
+
+#define IORING_VALID_SETUP_FLAGS (IORING_SETUP_IOPOLL | IORING_SETUP_SQPOLL |\
+ IORING_SETUP_SQ_AFF | IORING_SETUP_CQSIZE |\
+ IORING_SETUP_CLAMP | IORING_SETUP_ATTACH_WQ |\
+ IORING_SETUP_R_DISABLED | IORING_SETUP_SUBMIT_ALL |\
+ IORING_SETUP_COOP_TASKRUN | IORING_SETUP_TASKRUN_FLAG |\
+ IORING_SETUP_SQE128 | IORING_SETUP_CQE32 |\
+ IORING_SETUP_SINGLE_ISSUER | IORING_SETUP_DEFER_TASKRUN |\
+ IORING_SETUP_NO_MMAP | IORING_SETUP_REGISTERED_FD_ONLY |\
+ IORING_SETUP_NO_SQARRAY | IORING_SETUP_HYBRID_IOPOLL)
+
enum {
IOU_COMPLETE = 0,
--
2.49.0
next prev parent reply other threads:[~2025-08-27 13:19 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-27 13:21 [RFC v1 0/3] introduce io_uring querying Pavel Begunkov
2025-08-27 13:21 ` [RFC v1 1/3] io_uring: add helper for *REGISTER_SEND_MSG_RING Pavel Begunkov
2025-08-27 13:21 ` Pavel Begunkov [this message]
2025-08-27 13:21 ` [RFC v1 3/3] io_uring: introduce io_uring querying Pavel Begunkov
2025-08-27 18:04 ` Gabriel Krisman Bertazi
2025-08-27 19:45 ` Pavel Begunkov
2025-08-27 15:35 ` [RFC v1 0/3] " Jens Axboe
2025-08-27 16:51 ` Pavel Begunkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3d5f99d4aafbcc66fbd90cde77470f0fe1641291.1756300192.git.asml.silence@gmail.com \
--to=asml.silence@gmail.com \
--cc=io-uring@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox