A future commit introducing free_has_hwpoison() to be called within __free_pages_prepare() will need to pass specific fpi_t flags when freeing a contiguous range of pages. Currently, free_prepared_contig_range() hardcodes the FPI_PREPARED flag and does not accept any caller-provided flags. Rename the core logic to __free_prepared_contig_range() to accept an fpi_t argument. It bitwise ORs with the required FPI_PREPARED flag. This is a preparatory commit with no functional changes. Signed-off-by: Jiaqi Yan --- mm/page_alloc.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 762d9b6bc792..7d27aff48b15 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6852,8 +6852,8 @@ void __init page_alloc_sysctl_init(void) register_sysctl_init("vm", page_alloc_sysctl_table); } -static void free_prepared_contig_range(struct page *page, - unsigned long nr_pages) +static void __free_prepared_contig_range(struct page *page, + unsigned long nr_pages, fpi_t fpi_flags) { unsigned long pfn = page_to_pfn(page); @@ -6870,7 +6870,7 @@ static void free_prepared_contig_range(struct page *page, * Free the chunk as a single block. Our caller has already * called free_pages_prepare() for each order-0 page. */ - __free_frozen_pages(page, order, FPI_PREPARED); + __free_frozen_pages(page, order, fpi_flags | FPI_PREPARED); pfn += 1UL << order; page += 1UL << order; @@ -6878,6 +6878,11 @@ static void free_prepared_contig_range(struct page *page, } } +static void free_prepared_contig_range(struct page *page, unsigned long nr_pages) +{ + __free_prepared_contig_range(page, nr_pages, FPI_NONE); +} + static void __free_contig_range_common(unsigned long pfn, unsigned long nr_pages, bool is_frozen) { -- 2.55.0.rc0.799.gd6f94ed593-goog