aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86_64/kernel/e820.c33
1 files changed, 1 insertions, 32 deletions
diff --git a/arch/x86_64/kernel/e820.c b/arch/x86_64/kernel/e820.c
index 164d0b83dc92..e06c2714ecf3 100644
--- a/arch/x86_64/kernel/e820.c
+++ b/arch/x86_64/kernel/e820.c
@@ -71,12 +71,7 @@ static inline int bad_addr(unsigned long *addrp, unsigned long size)
71 return 1; 71 return 1;
72 } 72 }
73#endif 73#endif
74 /* kernel code + 640k memory hole (later should not be needed, but 74 /* kernel code */
75 be paranoid for now) */
76 if (last >= 640*1024 && addr < 1024*1024) {
77 *addrp = 1024*1024;
78 return 1;
79 }
80 if (last >= __pa_symbol(&_text) && last < __pa_symbol(&_end)) { 75 if (last >= __pa_symbol(&_text) && last < __pa_symbol(&_end)) {
81 *addrp = __pa_symbol(&_end); 76 *addrp = __pa_symbol(&_end);
82 return 1; 77 return 1;
@@ -519,13 +514,6 @@ static int __init sanitize_e820_map(struct e820entry * biosmap, char * pnr_map)
519 * If we're lucky and live on a modern system, the setup code 514 * If we're lucky and live on a modern system, the setup code
520 * will have given us a memory map that we can use to properly 515 * will have given us a memory map that we can use to properly
521 * set up memory. If we aren't, we'll fake a memory map. 516 * set up memory. If we aren't, we'll fake a memory map.
522 *
523 * We check to see that the memory map contains at least 2 elements
524 * before we'll use it, because the detection code in setup.S may
525 * not be perfect and most every PC known to man has two memory
526 * regions: one from 0 to 640k, and one from 1mb up. (The IBM
527 * thinkpad 560x, for example, does not cooperate with the memory
528 * detection code.)
529 */ 517 */
530static int __init copy_e820_map(struct e820entry * biosmap, int nr_map) 518static int __init copy_e820_map(struct e820entry * biosmap, int nr_map)
531{ 519{
@@ -543,25 +531,6 @@ static int __init copy_e820_map(struct e820entry * biosmap, int nr_map)
543 if (start > end) 531 if (start > end)
544 return -1; 532 return -1;
545 533
546 /*
547 * Some BIOSes claim RAM in the 640k - 1M region.
548 * Not right. Fix it up.
549 *
550 * This should be removed on Hammer which is supposed to not
551 * have non e820 covered ISA mappings there, but I had some strange
552 * problems so it stays for now. -AK
553 */
554 if (type == E820_RAM) {
555 if (start < 0x100000ULL && end > 0xA0000ULL) {
556 if (start < 0xA0000ULL)
557 add_memory_region(start, 0xA0000ULL-start, type);
558 if (end <= 0x100000ULL)
559 continue;
560 start = 0x100000ULL;
561 size = end - start;
562 }
563 }
564
565 add_memory_region(start, size, type); 534 add_memory_region(start, size, type);
566 } while (biosmap++,--nr_map); 535 } while (biosmap++,--nr_map);
567 return 0; 536 return 0;