]> git.itanic.dy.fi Git - linux-stable/commitdiff
page_pool: use relaxed atomic for release side accounting
authorYunsheng Lin <linyunsheng@huawei.com>
Tue, 24 Aug 2021 09:06:49 +0000 (17:06 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Aug 2021 09:46:31 +0000 (10:46 +0100)
There is no need to synchronize the account updating, so
use the relaxed atomic to avoid some memory barrier in the
data path.

Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/page_pool.c

index e1409056965a04a7f758a0fd43827ac7573eb5e1..1a6978427d6c86695d214fb75cca94d5240bb5aa 100644 (file)
@@ -370,7 +370,7 @@ void page_pool_release_page(struct page_pool *pool, struct page *page)
        /* This may be the last page returned, releasing the pool, so
         * it is not safe to reference pool afterwards.
         */
-       count = atomic_inc_return(&pool->pages_state_release_cnt);
+       count = atomic_inc_return_relaxed(&pool->pages_state_release_cnt);
        trace_page_pool_state_release(pool, page, count);
 }
 EXPORT_SYMBOL(page_pool_release_page);