]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bootmem-stop-using-page-index-fix
authorAndrew Morton <akpm@linux-foundation.org>
Wed, 9 Oct 2024 21:16:16 +0000 (14:16 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 1 Nov 2024 04:29:02 +0000 (21:29 -0700)
fix arch/x86/mm/init_64.c build with !CONFIG_HAVE_BOOTMEM_INFO_NODE

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202410090311.eaqcL7IZ-lkp@intel.com/
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/x86/mm/init_64.c

index 4d5fde32413613aff8de32097434945237909daa..50c7595f7228c314c0bce118637f359b664ed091 100644 (file)
@@ -985,21 +985,32 @@ int arch_add_memory(int nid, u64 start, u64 size,
        return add_pages(nid, start_pfn, nr_pages, params);
 }
 
+static void free_reserved_pages(struct page *page, unsigned long nr_pages)
+{
+       while (nr_pages--)
+               free_reserved_page(page++);
+}
+
 static void __meminit free_pagetable(struct page *page, int order)
 {
        /* bootmem page has reserved flag */
        if (PageReserved(page)) {
-               enum bootmem_type type = bootmem_type(page);
                unsigned long nr_pages = 1 << order;
+#ifdef CONFIG_HAVE_BOOTMEM_INFO_NODE
+               enum bootmem_type type = bootmem_type(page);
 
                if (type == SECTION_INFO || type == MIX_SECTION_INFO) {
                        while (nr_pages--)
                                put_page_bootmem(page++);
-               } else
-                       while (nr_pages--)
-                               free_reserved_page(page++);
-       } else
+               } else {
+                       free_reserved_pages(page, nr_pages);
+               }
+#else
+               free_reserved_pages(page, nr_pages);
+#endif
+       } else {
                free_pages((unsigned long)page_address(page), order);
+       }
 }
 
 static void __meminit free_hugepage_table(struct page *page,