Use netmem put API, put_netmem(), instead of put_page() in page_pool_return_netmem(). While at it, delete #include <linux/mm.h> since the last put_page() in page_pool.c has been just removed with this patch. Signed-off-by: Byungchul Park <byungchul@xxxxxx> --- net/core/page_pool.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/net/core/page_pool.c b/net/core/page_pool.c index 8d52363f37cc..fb487013ef00 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -20,7 +20,6 @@ #include <linux/dma-direction.h> #include <linux/dma-mapping.h> #include <linux/page-flags.h> -#include <linux/mm.h> /* for put_page() */ #include <linux/poison.h> #include <linux/ethtool.h> #include <linux/netdevice.h> @@ -712,7 +711,7 @@ static __always_inline void __page_pool_release_page_dma(struct page_pool *pool, /* Disconnects a page (from a page_pool). API users can have a need * to disconnect a page (from a page_pool), to allow it to be used as * a regular page (that will eventually be returned to the normal - * page-allocator via put_page). + * page-allocator via put_netmem() and then put_page()). */ static void page_pool_return_netmem(struct page_pool *pool, netmem_ref netmem) { @@ -733,7 +732,7 @@ static void page_pool_return_netmem(struct page_pool *pool, netmem_ref netmem) if (put) { page_pool_clear_pp_info(netmem); - put_page(netmem_to_page(netmem)); + put_netmem(netmem); } /* An optimization would be to call __free_pages(page, pool->p.order) * knowing page is not part of page-cache (thus avoiding a -- 2.17.1