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.
         *
         * 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)
 
 #define E820_ACPI      3 /* usable as RAM once ACPI tables have been read */
 #define E820_NVS       4
 
-#define HIGH_MEMORY    (1024*1024)
-
-#define LOWMEMSIZE()   (0x9f000)
-
 #ifndef __ASSEMBLY__
 struct e820entry {
        u64 addr;       /* start of memory segment */