* [PATCH] io_uring/rw: handle IORING_OP_URING_CMD128 in iopoll dispatch [not found] <CGME20260219123601epcas5p3102acea27f92bc92a8e482c18e74103f@epcas5p3.samsung.com> @ 2026-02-19 12:31 ` Anuj Gupta 2026-02-19 13:32 ` Kanchan Joshi 0 siblings, 1 reply; 2+ messages in thread From: Anuj Gupta @ 2026-02-19 12:31 UTC (permalink / raw) To: axboe, kbusch; +Cc: io-uring, joshi.k, Anuj Gupta io_uring_classic_poll() special-cases only IORING_OP_URING_CMD for uring-cmd iopoll dispatch. IORING_OP_URING_CMD128 falls into the generic rw branch, which calls file->f_op->iopoll() after casting to struct io_rw. That is the wrong callback path for uring_cmd requests, which should go through ->uring_cmd_iopoll(). Treat IORING_OP_URING_CMD128 the same as IORING_OP_URING_CMD in io_uring_classic_poll(). Fixes: 1cba30bf9fdd ("io_uring: add support for IORING_SETUP_SQE_MIXED") Signed-off-by: Anuj Gupta <anuj20.g@samsung.com> --- io_uring/rw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/io_uring/rw.c b/io_uring/rw.c index b3971171c342..0eede0c09eaf 100644 --- a/io_uring/rw.c +++ b/io_uring/rw.c @@ -1254,7 +1254,7 @@ static int io_uring_classic_poll(struct io_kiocb *req, struct io_comp_batch *iob { struct file *file = req->file; - if (req->opcode == IORING_OP_URING_CMD) { + if (req->opcode == IORING_OP_URING_CMD || req->opcode == IORING_OP_URING_CMD128) { struct io_uring_cmd *ioucmd; ioucmd = io_kiocb_to_cmd(req, struct io_uring_cmd); -- 2.25.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] io_uring/rw: handle IORING_OP_URING_CMD128 in iopoll dispatch 2026-02-19 12:31 ` [PATCH] io_uring/rw: handle IORING_OP_URING_CMD128 in iopoll dispatch Anuj Gupta @ 2026-02-19 13:32 ` Kanchan Joshi 0 siblings, 0 replies; 2+ messages in thread From: Kanchan Joshi @ 2026-02-19 13:32 UTC (permalink / raw) To: Anuj Gupta, axboe, kbusch; +Cc: io-uring On 2/19/2026 6:01 PM, Anuj Gupta wrote: > io_uring_classic_poll() special-cases only IORING_OP_URING_CMD for > uring-cmd iopoll dispatch. IORING_OP_URING_CMD128 falls into the generic > rw branch, which calls file->f_op->iopoll() after casting to struct io_rw. > > That is the wrong callback path for uring_cmd requests, which should go > through ->uring_cmd_iopoll(). Treat IORING_OP_URING_CMD128 the same as > IORING_OP_URING_CMD in io_uring_classic_poll(). > > Fixes: 1cba30bf9fdd ("io_uring: add support for IORING_SETUP_SQE_MIXED") Just noticed that Caleb had sent a patch that handles this more completely: https://lore.kernel.org/io-uring/20260219013534.4140776-1-csander@purestorage.com/ ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-19 13:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20260219123601epcas5p3102acea27f92bc92a8e482c18e74103f@epcas5p3.samsung.com>
2026-02-19 12:31 ` [PATCH] io_uring/rw: handle IORING_OP_URING_CMD128 in iopoll dispatch Anuj Gupta
2026-02-19 13:32 ` Kanchan Joshi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox