]> git.karo-electronics.de Git - linux-beck.git/blobdiff - arch/x86/kernel/setup_32.c
x86: change propagate_e820_map() back to find_max_pfn(), 32-bit, fix
[linux-beck.git] / arch / x86 / kernel / setup_32.c
index de9c5ee77d078d43f2395997e4049d6c545ab2bb..ccf3595202fa6a75073370b58b7b864f201384e8 100644 (file)
@@ -377,11 +377,13 @@ static unsigned long __init setup_memory(void)
        if (max_pfn > max_low_pfn) {
                highstart_pfn = max_low_pfn;
        }
+       memory_present(0, 0, highend_pfn);
        printk(KERN_NOTICE "%ldMB HIGHMEM available.\n",
                pages_to_mb(highend_pfn - highstart_pfn));
        num_physpages = highend_pfn;
        high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1;
 #else
+       memory_present(0, 0, max_low_pfn);
        num_physpages = max_low_pfn;
        high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1;
 #endif
@@ -586,7 +588,7 @@ void __init setup_bootmem_allocator(void)
         */
        bootmap_size = bootmem_bootmap_pages(max_low_pfn)<<PAGE_SHIFT;
        bootmap = find_e820_area(min_low_pfn<<PAGE_SHIFT,
-                                max_low_pfn<<PAGE_SHIFT, bootmap_size,
+                                max_pfn_mapped<<PAGE_SHIFT, bootmap_size,
                                 PAGE_SIZE);
        if (bootmap == -1L)
                panic("Cannot find bootmem map of size %ld\n", bootmap_size);
@@ -595,6 +597,8 @@ void __init setup_bootmem_allocator(void)
        reserve_initrd();
 #endif
        bootmap_size = init_bootmem(bootmap >> PAGE_SHIFT, max_low_pfn);
+       printk(KERN_INFO "  mapped low ram: 0 - %08lx\n",
+                max_pfn_mapped<<PAGE_SHIFT);
        printk(KERN_INFO "  low ram: %08lx - %08lx\n",
                 min_low_pfn<<PAGE_SHIFT, max_low_pfn<<PAGE_SHIFT);
        printk(KERN_INFO "  bootmap %08lx - %08lx\n",
@@ -614,7 +618,6 @@ void __init setup_bootmem_allocator(void)
         */
        find_smp_config();
 #endif
-       numa_kva_reserve();
        reserve_crashkernel();
 
        reserve_ibft_region();
@@ -731,10 +734,10 @@ void __init setup_arch(char **cmdline_p)
                efi_init();
 
        /* update e820 for memory not covered by WB MTRRs */
-       propagate_e820_map();
+       find_max_pfn();
        mtrr_bp_init();
        if (mtrr_trim_uncached_memory(max_pfn))
-               propagate_e820_map();
+               find_max_pfn();
 
        max_low_pfn = setup_memory();