From: kernel test robot <lkp@intel.com>
To: Joanne Koong <joannelkoong@gmail.com>, axboe@kernel.dk
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
miklos@szeredi.hu, bschubert@ddn.com,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v1 7/9] fuse: add io-uring kernel-managed buffer ring
Date: Sat, 28 Mar 2026 13:21:35 +0100 [thread overview]
Message-ID: <202603281347.IHl1ccbK-lkp@intel.com> (raw)
In-Reply-To: <20260324224532.3733468-8-joannelkoong@gmail.com>
Hi Joanne,
kernel test robot noticed the following build errors:
[auto build test ERROR on mszeredi-fuse/for-next]
[also build test ERROR on linus/master v7.0-rc5 next-20260327]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Joanne-Koong/fuse-separate-next-request-fetching-from-sending-logic/20260328-142620
base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next
patch link: https://lore.kernel.org/r/20260324224532.3733468-8-joannelkoong%40gmail.com
patch subject: [PATCH v1 7/9] fuse: add io-uring kernel-managed buffer ring
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260328/202603281347.IHl1ccbK-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260328/202603281347.IHl1ccbK-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603281347.IHl1ccbK-lkp@intel.com/
All errors (new ones prefixed by >>):
>> fs/fuse/dev_uring.c:296:17: error: call to undeclared function 'io_uring_registered_mem_region_get'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
296 | mem_reg_addr = io_uring_registered_mem_region_get(cmd, &nr_pages,
| ^
>> fs/fuse/dev_uring.c:296:15: error: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
296 | mem_reg_addr = io_uring_registered_mem_region_get(cmd, &nr_pages,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
297 | issue_flags);
| ~~~~~~~~~~~~
>> fs/fuse/dev_uring.c:334:8: error: call to undeclared function 'io_uring_buf_ring_pin'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
334 | err = io_uring_buf_ring_pin(cmd, FUSE_URING_BUFRING_GROUP, issue_flags,
| ^
>> fs/fuse/dev_uring.c:339:7: error: call to undeclared function 'io_uring_is_kmbuf_ring'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
339 | if (!io_uring_is_kmbuf_ring(cmd, FUSE_URING_BUFRING_GROUP, issue_flags))
| ^
>> fs/fuse/dev_uring.c:349:2: error: call to undeclared function 'io_uring_buf_ring_unpin'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
349 | io_uring_buf_ring_unpin(cmd, FUSE_URING_BUFRING_GROUP, issue_flags);
| ^
fs/fuse/dev_uring.c:400:4: error: call to undeclared function 'io_uring_buf_ring_unpin'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
400 | io_uring_buf_ring_unpin(cmd, FUSE_URING_BUFRING_GROUP,
| ^
>> fs/fuse/dev_uring.c:903:8: error: call to undeclared function 'io_ring_buffer_select'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
903 | sel = io_ring_buffer_select(cmd_to_io_kiocb(ent->cmd), &len,
| ^
fs/fuse/dev_uring.c:903:8: note: did you mean 'io_uring_cmd_buffer_select'?
include/linux/io_uring/cmd.h:83:18: note: 'io_uring_cmd_buffer_select' declared here
83 | struct io_br_sel io_uring_cmd_buffer_select(struct io_uring_cmd *ioucmd,
| ^
>> fs/fuse/dev_uring.c:903:6: error: assigning to 'struct io_br_sel' from incompatible type 'int'
903 | sel = io_ring_buffer_select(cmd_to_io_kiocb(ent->cmd), &len,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
904 | ent->queue->bufring.list, issue_flags);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> fs/fuse/dev_uring.c:907:11: error: no member named 'kaddr' in 'struct io_br_sel'; did you mean 'addr'?
907 | if (!sel.kaddr)
| ^~~~~
| addr
include/linux/io_uring_types.h:100:16: note: 'addr' declared here
100 | void __user *addr;
| ^
fs/fuse/dev_uring.c:910:35: error: no member named 'kaddr' in 'struct io_br_sel'; did you mean 'addr'?
910 | ent->payload_kvec.iov_base = sel.kaddr;
| ^~~~~
| addr
include/linux/io_uring_types.h:100:16: note: 'addr' declared here
100 | void __user *addr;
| ^
>> fs/fuse/dev_uring.c:912:20: error: no member named 'buf_id' in 'struct io_br_sel'
912 | ent->buf_id = sel.buf_id;
| ~~~ ^
>> fs/fuse/dev_uring.c:928:15: error: call to undeclared function 'io_uring_kmbuf_recycle'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
928 | WARN_ON_ONCE(io_uring_kmbuf_recycle(ent->cmd, FUSE_URING_BUFRING_GROUP,
| ^
12 errors generated.
vim +/io_uring_registered_mem_region_get +296 fs/fuse/dev_uring.c
285
286 static void *fuse_uring_get_buf_ring_headers(struct io_uring_cmd *cmd,
287 u64 headers_offset,
288 unsigned int queue_depth,
289 unsigned int issue_flags)
290 {
291 void *mem_reg_addr;
292 u64 mem_reg_size, headers_size;
293 unsigned nr_pages;
294
295 /* find the headers in the registered memory region */
> 296 mem_reg_addr = io_uring_registered_mem_region_get(cmd, &nr_pages,
297 issue_flags);
298
299 /* server does not have a registered memory region set up */
300 if (!mem_reg_addr)
301 return NULL;
302
303 mem_reg_size = (u64)nr_pages * PAGE_SIZE;
304 if (headers_offset > mem_reg_size)
305 return NULL;
306
307 /* verify headers fit within memory region bounds */
308 headers_size = (u64)queue_depth * sizeof(struct fuse_uring_req_header);
309 if (mem_reg_size - headers_offset < headers_size)
310 return NULL;
311
312 return mem_reg_addr + headers_offset;
313 }
314
315 static int fuse_uring_buf_ring_setup(struct io_uring_cmd *cmd,
316 struct fuse_ring_queue *queue,
317 unsigned int issue_flags)
318 {
319 const struct fuse_uring_cmd_req *cmd_req =
320 io_uring_sqe128_cmd(cmd->sqe, struct fuse_uring_cmd_req);
321 u64 headers_offset = READ_ONCE(cmd_req->init.headers_offset);
322 unsigned queue_depth = READ_ONCE(cmd_req->init.queue_depth);
323 void *headers;
324 int err;
325
326 if (!queue_depth)
327 return -EINVAL;
328
329 headers = fuse_uring_get_buf_ring_headers(cmd, headers_offset,
330 queue_depth, issue_flags);
331 if (!headers)
332 return -EINVAL;
333
> 334 err = io_uring_buf_ring_pin(cmd, FUSE_URING_BUFRING_GROUP, issue_flags,
335 &queue->bufring.list);
336 if (err)
337 return err;
338
> 339 if (!io_uring_is_kmbuf_ring(cmd, FUSE_URING_BUFRING_GROUP, issue_flags))
340 goto error;
341
342 queue->bufring.headers = headers;
343 queue->bufring.queue_depth = queue_depth;
344 queue->bufring.enabled = true;
345
346 return 0;
347
348 error:
> 349 io_uring_buf_ring_unpin(cmd, FUSE_URING_BUFRING_GROUP, issue_flags);
350 return -EINVAL;
351 }
352
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-03-28 12:22 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-24 22:45 [PATCH v1 0/9] fuse: add io-uring buffer rings and zero-copy Joanne Koong
2026-03-24 22:45 ` [PATCH v1 1/9] fuse: separate next request fetching from sending logic Joanne Koong
2026-03-24 22:45 ` [PATCH v1 2/9] fuse: refactor io-uring header copying to ring Joanne Koong
2026-03-24 22:45 ` [PATCH v1 3/9] fuse: refactor io-uring header copying from ring Joanne Koong
2026-03-24 22:45 ` [PATCH v1 4/9] fuse: use enum types for header copying Joanne Koong
2026-03-24 22:45 ` [PATCH v1 5/9] fuse: refactor setting up copy state for payload copying Joanne Koong
2026-03-24 22:45 ` [PATCH v1 6/9] fuse: support buffer copying for kernel addresses Joanne Koong
2026-03-24 22:45 ` [PATCH v1 7/9] fuse: add io-uring kernel-managed buffer ring Joanne Koong
2026-03-28 12:21 ` kernel test robot [this message]
2026-03-28 12:54 ` kernel test robot
2026-03-28 13:27 ` kernel test robot
2026-03-30 21:28 ` Bernd Schubert
2026-03-30 23:19 ` Joanne Koong
2026-03-31 21:30 ` Bernd Schubert
2026-03-24 22:45 ` [PATCH v1 8/9] fuse: add zero-copy over io-uring Joanne Koong
2026-03-28 13:02 ` kernel test robot
2026-03-28 13:53 ` kernel test robot
2026-03-30 15:43 ` Joanne Koong
2026-03-31 3:35 ` Philip Li
2026-03-24 22:45 ` [PATCH v1 9/9] docs: fuse: add io-uring bufring and zero-copy documentation Joanne Koong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202603281347.IHl1ccbK-lkp@intel.com \
--to=lkp@intel.com \
--cc=axboe@kernel.dk \
--cc=bschubert@ddn.com \
--cc=joannelkoong@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=miklos@szeredi.hu \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.