[lkml]   [2001]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject2.4.0 memory sizing broken on old x86 machines
Memory sizing for old machines whose BIOSen don't speak E820
got broken in 2.4.0-test13-pre4:

--- v2.4.0-test12/linux/arch/i386/kernel/setup.c Mon Dec 11 17:59:43 2000
+++ linux/arch/i386/kernel/setup.c Thu Dec 21 14:01:19 2000
@@ -518,7 +518,7 @@

e820.nr_map = 0;
add_memory_region(0, LOWMEMSIZE(), E820_RAM);
- add_memory_region(HIGH_MEMORY, mem_size << 10, E820_RAM);
+ add_memory_region(HIGH_MEMORY, (mem_size << 10) - HIGH_MEMORY, E820_RAM);
printk("BIOS-provided physical RAM map:\n");
(This snipped is in setup_memory_region() where legacy (e801 or 88)
memory size info is converted to e820-style.)

BIOS call 0x88 returns extended (above 1M) memory size not total, so
the subtraction "- HIGH_MEMORY" is wrong. The effect is that the
kernel believes the machine to have 1MB less RAM than it actually has
-- not fun on an old 486 with limited RAM to start with :-(

I think this patch should be backed out pronto.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:52    [W:0.029 / U:0.544 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site