]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
io_uring/zcrx: use guards for the refill lock
authorPavel Begunkov <asml.silence@gmail.com>
Tue, 16 Sep 2025 14:27:59 +0000 (15:27 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 16 Sep 2025 18:37:21 +0000 (12:37 -0600)
Use guards for rq_lock in io_zcrx_ring_refill(), makes it a tad simpler.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/zcrx.c

index 5f99fc7b43ee1815704e6ce78bb322723565693a..630b19ebb47e61e871d9a9f9133f37801d8004c6 100644 (file)
@@ -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)