Hi Jens, this is a gentle ping. I'll respin, using memdup_user() for restriction registration. I'd like to get some feedback to see if I should change anything else. Do you think it's in good shape? Thanks, Stefano On Thu, Aug 13, 2020 at 5:34 PM Stefano Garzarella <sgarzare@xxxxxxxxxx> wrote: > > v4: > - rebased on top of io_uring-5.9 > - fixed io_uring_enter() exit path when ring is disabled > > v3: https://lore.kernel.org/io-uring/20200728160101.48554-1-sgarzare@redhat.c= > om/ > RFC v2: https://lore.kernel.org/io-uring/20200716124833.93667-1-sgarzare@redh= > at.com > RFC v1: https://lore.kernel.org/io-uring/20200710141945.129329-1-sgarzare@red= > hat.com > > Following the proposal that I send about restrictions [1], I wrote this series > to add restrictions in io_uring. > > I also wrote helpers in liburing and a test case (test/register-restrictions.= > c) > available in this repository: > https://github.com/stefano-garzarella/liburing (branch: io_uring_restrictions) > > Just to recap the proposal, the idea is to add some restrictions to the > operations (sqe opcode and flags, register opcode) to safely allow untrusted > applications or guests to use io_uring queues. > > The first patch changes io_uring_register(2) opcodes into an enumeration to > keep track of the last opcode available. > > The second patch adds IOURING_REGISTER_RESTRICTIONS opcode and the code to > handle restrictions. > > The third patch adds IORING_SETUP_R_DISABLED flag to start the rings disabled, > allowing the user to register restrictions, buffers, files, before to start > processing SQEs. > > Comments and suggestions are very welcome. > > Thank you in advance, > Stefano > > [1] https://lore.kernel.org/io-uring/20200609142406.upuwpfmgqjeji4lc@steredha= > t/ > > Stefano Garzarella (3): > io_uring: use an enumeration for io_uring_register(2) opcodes > io_uring: add IOURING_REGISTER_RESTRICTIONS opcode > io_uring: allow disabling rings during the creation > > fs/io_uring.c | 160 ++++++++++++++++++++++++++++++++-- > include/uapi/linux/io_uring.h | 60 ++++++++++--- > 2 files changed, 203 insertions(+), 17 deletions(-) > > --=20 > 2.26.2 >