mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 18:52:02 +00:00
io_uring: retain top 8bits of uring_cmd flags for kernel internal use
Retain top 8bits of uring_cmd flags for kernel internal use, so that we can move IORING_URING_CMD_POLLED out of uapi header. Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de> Reviewed-by: Anuj Gupta <anuj20.g@samsung.com> Signed-off-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
f31ecf671d
commit
528ce67817
@ -22,6 +22,9 @@ enum io_uring_cmd_flags {
|
||||
IO_URING_F_IOPOLL = (1 << 10),
|
||||
};
|
||||
|
||||
/* only top 8 bits of sqe->uring_cmd_flags for kernel internal use */
|
||||
#define IORING_URING_CMD_POLLED (1U << 31)
|
||||
|
||||
struct io_uring_cmd {
|
||||
struct file *file;
|
||||
const struct io_uring_sqe *sqe;
|
||||
|
@ -249,13 +249,12 @@ enum io_uring_op {
|
||||
};
|
||||
|
||||
/*
|
||||
* sqe->uring_cmd_flags
|
||||
* sqe->uring_cmd_flags top 8bits aren't available for userspace
|
||||
* IORING_URING_CMD_FIXED use registered buffer; pass this flag
|
||||
* along with setting sqe->buf_index.
|
||||
* IORING_URING_CMD_POLLED driver use only
|
||||
*/
|
||||
#define IORING_URING_CMD_FIXED (1U << 0)
|
||||
#define IORING_URING_CMD_POLLED (1U << 31)
|
||||
#define IORING_URING_CMD_MASK IORING_URING_CMD_FIXED
|
||||
|
||||
|
||||
/*
|
||||
|
@ -4669,6 +4669,9 @@ static int __init io_uring_init(void)
|
||||
|
||||
BUILD_BUG_ON(sizeof(atomic_t) != sizeof(u32));
|
||||
|
||||
/* top 8bits are for internal use */
|
||||
BUILD_BUG_ON((IORING_URING_CMD_MASK & 0xff000000) != 0);
|
||||
|
||||
io_uring_optable_init();
|
||||
|
||||
/*
|
||||
|
@ -91,7 +91,7 @@ int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
|
||||
return -EINVAL;
|
||||
|
||||
ioucmd->flags = READ_ONCE(sqe->uring_cmd_flags);
|
||||
if (ioucmd->flags & ~IORING_URING_CMD_FIXED)
|
||||
if (ioucmd->flags & ~IORING_URING_CMD_MASK)
|
||||
return -EINVAL;
|
||||
|
||||
if (ioucmd->flags & IORING_URING_CMD_FIXED) {
|
||||
|
Loading…
Reference in New Issue
Block a user