Re: [PATCH 2/2] io_uring/nop: use io_find_buf_node()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/1/25 00:16, Caleb Sander Mateos wrote:
Call io_find_buf_node() to avoid duplicating it in io_nop().

IORING_NOP_FIXED_BUFFER interface looks odd, instead of pretending
to use a buffer, it basically pokes directly into internal infra,
it's not something userspace should be able to do.

Jens, did use it anywhere? It's new, I'd rather kill it or align with
how requests consume buffers, i.e. addr+len, and then do
io_import_reg_buf() instead. That'd break the api though, but would
anyone care?


Signed-off-by: Caleb Sander Mateos <csander@xxxxxxxxxxxxxxx>
---
  io_uring/nop.c | 13 ++-----------
  1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/io_uring/nop.c b/io_uring/nop.c
index ea539531cb5f..28f06285fdc2 100644
--- a/io_uring/nop.c
+++ b/io_uring/nop.c
@@ -59,21 +59,12 @@ int io_nop(struct io_kiocb *req, unsigned int issue_flags)
  			ret = -EBADF;
  			goto done;
  		}
  	}
  	if (nop->flags & IORING_NOP_FIXED_BUFFER) {
-		struct io_ring_ctx *ctx = req->ctx;
-		struct io_rsrc_node *node;
-
-		ret = -EFAULT;
-		io_ring_submit_lock(ctx, issue_flags);
-		node = io_rsrc_node_lookup(&ctx->buf_table, req->buf_index);
-		if (node) {
-			io_req_assign_buf_node(req, node);
-			ret = 0;
-		}
-		io_ring_submit_unlock(ctx, issue_flags);
+		if (!io_find_buf_node(req, issue_flags))
+			ret = -EFAULT;
  	}
  done:
  	if (ret < 0)
  		req_set_fail(req);
  	io_req_set_res(req, nop->result, 0);

--
Pavel Begunkov





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux