On 9/29/22 6:06 AM, Anuj Gupta wrote: > diff --git a/io_uring/uring_cmd.c b/io_uring/uring_cmd.c > index 6a6d69523d75..faefa9f6f259 100644 > --- a/io_uring/uring_cmd.c > +++ b/io_uring/uring_cmd.c > @@ -4,6 +4,7 @@ > #include <linux/file.h> > #include <linux/io_uring.h> > #include <linux/security.h> > +#include <linux/nospec.h> > > #include <uapi/linux/io_uring.h> > > @@ -77,8 +78,21 @@ int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) > { > struct io_uring_cmd *ioucmd = io_kiocb_to_cmd(req, struct io_uring_cmd); > > - if (sqe->rw_flags || sqe->__pad1) > + if (sqe->__pad1) > return -EINVAL; > + > + ioucmd->flags = READ_ONCE(sqe->uring_cmd_flags); After reading this and checking for IORING_URING_CMD_FIXED, this should have a: if (iocmd->flags & ~IORING_URING_CMD_FIXED) return -EINVAL; to ensure we can safely add more flags in the future. Apart from that, this looks good. -- Jens Axboe