[PATCH] Remove non e820 fallbacks in high level code
[sfrench/cifs-2.6.git] / arch / x86_64 / kernel / e820.c
index e06c2714ecf362304413124dbc71d34dacdc143b..5d1275a936583ecef5fd734919a37e855bc826eb 100644 (file)
@@ -536,10 +536,14 @@ static int __init copy_e820_map(struct e820entry * biosmap, int nr_map)
        return 0;
 }
 
-void __init setup_memory_region(void)
+void early_panic(char *msg)
 {
-       char *who = "BIOS-e820";
+       early_printk(msg);
+       panic(msg);
+}
 
+void __init setup_memory_region(void)
+{
        /*
         * Try to copy the BIOS-supplied E820-map.
         *
@@ -547,24 +551,10 @@ void __init setup_memory_region(void)
         * the next section from 1mb->appropriate_mem_k
         */
        sanitize_e820_map(E820_MAP, &E820_MAP_NR);
-       if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0) {
-               unsigned long mem_size;
-
-               /* compare results from other methods and take the greater */
-               if (ALT_MEM_K < EXT_MEM_K) {
-                       mem_size = EXT_MEM_K;
-                       who = "BIOS-88";
-               } else {
-                       mem_size = ALT_MEM_K;
-                       who = "BIOS-e801";
-               }
-
-               e820.nr_map = 0;
-               add_memory_region(0, LOWMEMSIZE(), E820_RAM);
-               add_memory_region(HIGH_MEMORY, mem_size << 10, E820_RAM);
-       }
+       if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0)
+               early_panic("Cannot find a valid memory map");
        printk(KERN_INFO "BIOS-provided physical RAM map:\n");
-       e820_print_map(who);
+       e820_print_map("BIOS-e820");
 }
 
 static int __init parse_memopt(char *p)