mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
io_uring/register: set ctx->restricted when restrictions are parsed
Rather than defer this until the rings are enabled, just set it upfront when the restrictions are parsed and enabled anyway. There's no reason to defer this setting until the rings are enabled. Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
e6ed0f051d
commit
09bd84421d
|
|
@ -175,6 +175,8 @@ static __cold int io_register_restrictions(struct io_ring_ctx *ctx,
|
|||
memset(&ctx->restrictions, 0, sizeof(ctx->restrictions));
|
||||
return ret;
|
||||
}
|
||||
if (ctx->restrictions.registered)
|
||||
ctx->restricted = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -193,9 +195,6 @@ static int io_register_enable_rings(struct io_ring_ctx *ctx)
|
|||
io_activate_pollwq(ctx);
|
||||
}
|
||||
|
||||
if (ctx->restrictions.registered)
|
||||
ctx->restricted = 1;
|
||||
|
||||
/* Keep submitter_task store before clearing IORING_SETUP_R_DISABLED */
|
||||
smp_store_release(&ctx->flags, ctx->flags & ~IORING_SETUP_R_DISABLED);
|
||||
if (ctx->sq_data && wq_has_sleeper(&ctx->sq_data->wait))
|
||||
|
|
@ -627,7 +626,7 @@ static int __io_uring_register(struct io_ring_ctx *ctx, unsigned opcode,
|
|||
if (ctx->submitter_task && ctx->submitter_task != current)
|
||||
return -EEXIST;
|
||||
|
||||
if (ctx->restricted) {
|
||||
if (ctx->restricted && !(ctx->flags & IORING_SETUP_R_DISABLED)) {
|
||||
opcode = array_index_nospec(opcode, IORING_REGISTER_LAST);
|
||||
if (!test_bit(opcode, ctx->restrictions.register_op))
|
||||
return -EACCES;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user