x86: clean up reserve_bootmem_generic() and port it to 32-bit
[cascardo/linux.git] / arch / x86 / mm / init_32.c
index ec30d10..abadb1d 100644 (file)
@@ -289,7 +289,8 @@ static void __init permanent_kmaps_init(pgd_t *pgd_base)
 
 void __init add_one_highpage_init(struct page *page, int pfn, int bad_ppro)
 {
-       if (page_is_ram(pfn) && !(bad_ppro && page_kills_ppro(pfn))) {
+       if (page_is_ram(pfn) && !(bad_ppro && page_kills_ppro(pfn)) &&
+           !page_is_reserved_early(pfn)) {
                ClearPageReserved(page);
                init_page_count(page);
                __free_page(page);
@@ -784,3 +785,9 @@ void free_initrd_mem(unsigned long start, unsigned long end)
        free_init_pages("initrd memory", start, end);
 }
 #endif
+
+int __init reserve_bootmem_generic(unsigned long phys, unsigned long len,
+                                  int flags)
+{
+       return reserve_bootmem(phys, len, flags);
+}