aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Jackson2008-06-22 09:22:07 -0500
committerIngo Molnar2008-07-08 05:51:26 -0500
commitc4ba1320b7075e9ce33ad0afaef43ba13260b4c2 (patch)
treed9c3aa07da17153d4ac8489daf10dbc48e2220b1 /arch/x86/kernel/head.c
parent05486fa7e631a3be31a0bbc5a575a389a1609e94 (diff)
downloadkernel-common-c4ba1320b7075e9ce33ad0afaef43ba13260b4c2.tar.gz
kernel-common-c4ba1320b7075e9ce33ad0afaef43ba13260b4c2.tar.xz
kernel-common-c4ba1320b7075e9ce33ad0afaef43ba13260b4c2.zip
x86 boot: allow overlapping early reserve memory ranges
Add support for overlapping early memory reservations. In general, they still can't overlap, and will panic with "Overlapping early reservations" if they do overlap. But if a memory range is reserved with the new call: reserve_early_overlap_ok() rather than with the usual call: reserve_early() then subsequent early reservations are allowed to overlap. This new reserve_early_overlap_ok() call is only used in one place so far, which is the "BIOS reserved" reservation for the the EBDA region, which out of Paranoia reserves more than what the BIOS might have specified, and which thus might overlap with another legitimate early memory reservation (such as, perhaps, the EFI memmap.) Signed-off-by: Paul Jackson <pj@sgi.com> Cc: "Yinghai Lu" <yhlu.kernel@gmail.com> Cc: "Jack Steiner" <steiner@sgi.com> Cc: "Mike Travis" <travis@sgi.com> Cc: "Huang Cc: Ying" <ying.huang@intel.com> Cc: "Andi Kleen" <andi@firstfloor.org> Cc: "Andrew Morton" <akpm@linux-foundation.org> Cc: Paul Jackson <pj@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/head.c')
-rw-r--r--arch/x86/kernel/head.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/head.c b/arch/x86/kernel/head.c
index a727c0b9819..a6816be01cd 100644
--- a/arch/x86/kernel/head.c
+++ b/arch/x86/kernel/head.c
@@ -51,7 +51,7 @@ void __init reserve_ebda_region(void)
51 lowmem = 0x9f000; 51 lowmem = 0x9f000;
52 52
53 /* reserve all memory between lowmem and the 1MB mark */ 53 /* reserve all memory between lowmem and the 1MB mark */
54 reserve_early(lowmem, 0x100000, "BIOS reserved"); 54 reserve_early_overlap_ok(lowmem, 0x100000, "BIOS reserved");
55} 55}
56 56
57void __init reserve_setup_data(void) 57void __init reserve_setup_data(void)