From: Pavel Begunkov Date: Tue, 16 Sep 2025 14:27:59 +0000 (+0100) Subject: io_uring/zcrx: use guards for the refill lock X-Git-Tag: v6.18-rc1~137^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c95257f336556de05f26dc88a890fb2a59364939;p=thirdparty%2Fkernel%2Fstable.git io_uring/zcrx: use guards for the refill lock Use guards for rq_lock in io_zcrx_ring_refill(), makes it a tad simpler. Signed-off-by: Pavel Begunkov Signed-off-by: Jens Axboe --- diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index 5f99fc7b43ee1..630b19ebb47e6 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -756,14 +756,12 @@ static void io_zcrx_ring_refill(struct page_pool *pp, unsigned int mask = ifq->rq_entries - 1; unsigned int entries; - spin_lock_bh(&ifq->rq_lock); + guard(spinlock_bh)(&ifq->rq_lock); entries = io_zcrx_rqring_entries(ifq); entries = min_t(unsigned, entries, PP_ALLOC_CACHE_REFILL - pp->alloc.count); - if (unlikely(!entries)) { - spin_unlock_bh(&ifq->rq_lock); + if (unlikely(!entries)) return; - } do { struct io_uring_zcrx_rqe *rqe = io_zcrx_get_rqe(ifq, mask); @@ -801,7 +799,6 @@ static void io_zcrx_ring_refill(struct page_pool *pp, } while (--entries); smp_store_release(&ifq->rq_ring->head, ifq->cached_rq_head); - spin_unlock_bh(&ifq->rq_lock); } static void io_zcrx_refill_slow(struct page_pool *pp, struct io_zcrx_ifq *ifq)