On 10/15/24 8:27 PM, Jens Axboe wrote: > Thanks, I'll take a look! A vmlinux would be handy to have, in terms of > looking up where it's fauling without spending too much time on it. But > if you don't have it, no worries, I'll give this a spin tomorrow. Ah, it was just missing the dummy_ubuf check. The below should fix it, I'll queue it up and add a test case to liburing too. diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c index 33a3d156a85b..6f3b6de230bd 100644 --- a/io_uring/rsrc.c +++ b/io_uring/rsrc.c @@ -1176,7 +1176,8 @@ static int io_clone_buffers(struct io_ring_ctx *ctx, struct io_ring_ctx *src_ctx for (i = 0; i < nbufs; i++) { struct io_mapped_ubuf *src = src_ctx->user_bufs[i]; - refcount_inc(&src->refs); + if (src != &dummy_ubuf) + refcount_inc(&src->refs); user_bufs[i] = src; } -- Jens Axboe