X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=io_uring%2Fkbuf.c;h=acc37e5a6d4e1d3852ebf31c5fb963bc7fe6e80e;hb=83454c2bfacdd5c13bb1b5e40a979cfb1088613a;hp=9a9db1fcdc14d693f0606251efaf356820923c1b;hpb=bd4081fa1cd9563d112155a5aa58fbba7bb4f647;p=platform%2Fkernel%2Flinux-starfive.git diff --git a/io_uring/kbuf.c b/io_uring/kbuf.c index 9a9db1f..acc37e5 100644 --- a/io_uring/kbuf.c +++ b/io_uring/kbuf.c @@ -228,11 +228,14 @@ static int __io_remove_buffers(struct io_ring_ctx *ctx, return i; } + /* protects io_buffers_cache */ + lockdep_assert_held(&ctx->uring_lock); + while (!list_empty(&bl->buf_list)) { struct io_buffer *nxt; nxt = list_first_entry(&bl->buf_list, struct io_buffer, list); - list_del(&nxt->list); + list_move(&nxt->list, &ctx->io_buffers_cache); if (++i == nbufs) return i; cond_resched();