summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86/mm/init_64.c30
1 files changed, 4 insertions, 26 deletions
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 320e742b0bb3..82bb0384b8ab 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -1024,19 +1024,12 @@ static void __meminit free_vmemmap_pages(struct page *page, unsigned int order,
{
unsigned long nr_pages = 1u << order;
- if (altmap) {
+ if (altmap)
vmem_altmap_free(altmap, nr_pages);
- } else if (PageReserved(page)) {
- if (IS_ENABLED(CONFIG_HAVE_BOOTMEM_INFO_NODE) &&
- bootmem_type(page) == SECTION_INFO) {
- while (nr_pages--)
- put_page_bootmem(page++);
- } else {
- free_reserved_pages(page, order);
- }
- } else {
+ else if (PageReserved(page))
+ free_reserved_pages(page, order);
+ else
__free_pages(page, order);
- }
}
static void __meminit free_pte_table(pte_t *pte_start, pmd_t *pmd)
@@ -1593,12 +1586,8 @@ void register_page_bootmem_memmap(unsigned long section_nr,
p4d_t *p4d;
pud_t *pud;
pmd_t *pmd;
- unsigned int nr_pmd_pages;
- struct page *page;
for (; addr < end; addr = next) {
- pte_t *pte = NULL;
-
pgd = pgd_offset_k(addr);
if (pgd_none(*pgd)) {
next = (addr + PAGE_SIZE) & PAGE_MASK;
@@ -1630,19 +1619,8 @@ void register_page_bootmem_memmap(unsigned long section_nr,
next = (addr + PAGE_SIZE) & PAGE_MASK;
get_page_bootmem(section_nr, pmd_page(*pmd),
MIX_SECTION_INFO);
-
- pte = pte_offset_kernel(pmd, addr);
- if (pte_none(*pte))
- continue;
- get_page_bootmem(section_nr, pte_page(*pte),
- SECTION_INFO);
} else {
next = pmd_addr_end(addr, end);
- nr_pmd_pages = (next - addr) >> PAGE_SHIFT;
- page = pmd_page(*pmd);
- while (nr_pmd_pages--)
- get_page_bootmem(section_nr, page++,
- SECTION_INFO);
}
}
}