|
@@ -720,7 +720,7 @@ static void __init init_free_pfn_range(unsigned long start, unsigned long end)
|
|
|
}
|
|
|
init_page_count(page);
|
|
|
__free_pages(page, order);
|
|
|
- totalram_pages += count;
|
|
|
+ adjust_managed_page_count(page, count);
|
|
|
|
|
|
page += count;
|
|
|
pfn += count;
|
|
@@ -1024,16 +1024,13 @@ static void free_init_pages(char *what, unsigned long begin, unsigned long end)
|
|
|
pte_clear(&init_mm, addr, ptep);
|
|
|
continue;
|
|
|
}
|
|
|
- __ClearPageReserved(page);
|
|
|
- init_page_count(page);
|
|
|
if (pte_huge(*ptep))
|
|
|
BUG_ON(!kdata_huge);
|
|
|
else
|
|
|
set_pte_at(&init_mm, addr, ptep,
|
|
|
pfn_pte(pfn, PAGE_KERNEL));
|
|
|
memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
|
|
|
- free_page(addr);
|
|
|
- totalram_pages++;
|
|
|
+ free_reserved_page(page);
|
|
|
}
|
|
|
pr_info("Freeing %s: %ldk freed\n", what, (end - begin) >> 10);
|
|
|
}
|