]> www.infradead.org Git - users/hch/misc.git/commitdiff
net: make page_pool_ref_netmem work with net iovs
authorPavel Begunkov <asml.silence@gmail.com>
Wed, 8 Jan 2025 22:06:22 +0000 (14:06 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 16 Jan 2025 02:44:30 +0000 (18:44 -0800)
page_pool_ref_netmem() should work with either netmem representation, but
currently it casts to a page with netmem_to_page(), which will fail with
net iovs. Use netmem_get_pp_ref_count_ref() instead.

Fixes: 8ab79ed50cf1 ("page_pool: devmem support")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: David Wei <dw@davidwei.uk>
Link: https://lore.kernel.org/20250108220644.3528845-2-dw@davidwei.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/page_pool/helpers.h

index 793e6fd78bc5c0890bc875a0ddfcc896e89896dd..60a5347922becc1be6da414055c58211976dda02 100644 (file)
@@ -294,7 +294,7 @@ static inline long page_pool_unref_page(struct page *page, long nr)
 
 static inline void page_pool_ref_netmem(netmem_ref netmem)
 {
-       atomic_long_inc(&netmem_to_page(netmem)->pp_ref_count);
+       atomic_long_inc(netmem_get_pp_ref_count_ref(netmem));
 }
 
 static inline void page_pool_ref_page(struct page *page)