Re: [PATCH v2 5/7] powerpc: Stop calling page_address() in free_pages()
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Date: 2025-09-01 04:00:03
Also in:
linux-mm, lkml
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Date: 2025-09-01 04:00:03
Also in:
linux-mm, lkml
Hi Vishal, "Vishal Moola (Oracle)" [off-list ref] writes:
free_pages() should be used when we only have a virtual address. We should call __free_pages() directly on our page instead. Signed-off-by: Vishal Moola (Oracle) <redacted> --- arch/powerpc/mm/book3s64/radix_pgtable.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Please also cc the respective subsystem mailing list if the changes span in their area. In this case that would be linuxppc-dev@lists.ozlabs.org ( I did it this time ) Thanks for doing the cleanup. Yes, it makes no sense to do page_address() here and then free_pages() doing virt_to_page() internally.. The change looks good to me. Please feel free to add: Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c index be523e5fe9c5..73977dbabcf2 100644 --- a/arch/powerpc/mm/book3s64/radix_pgtable.c +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c@@ -780,7 +780,7 @@ static void __meminit free_vmemmap_pages(struct page *page, while (nr_pages--) free_reserved_page(page++); } else - free_pages((unsigned long)page_address(page), order); + __free_pages(page, order); } static void __meminit remove_pte_table(pte_t *pte_start, unsigned long addr,-- 2.51.0