public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
* [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