summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-09-16 10:07:34 +0200
committerIngo Molnar <mingo@elte.hu>2008-09-16 12:16:07 +0200
commitfc38151947477596aa27df6c4306ad6008dc6711 (patch)
tree7af88aec9e88b763e3e9fdb7914884788f74f6b7 /arch/x86/kernel
parent1e22436eba84edfec9c25e5a25d09062c4f91ca9 (diff)
downloadblackbird-op-linux-fc38151947477596aa27df6c4306ad6008dc6711.tar.gz
blackbird-op-linux-fc38151947477596aa27df6c4306ad6008dc6711.zip
x86: add X86_RESERVE_LOW_64K
This bugzilla: http://bugzilla.kernel.org/show_bug.cgi?id=11237 Documents a wide range of systems where the BIOS utilizes the first 64K of physical memory during suspend/resume and other hardware events. Currently we reserve this memory on all AMI and Phoenix BIOS systems. Life is too short to hunt subtle memory corruption problems like this, so we try to be robust by default. Still, allow this to be overriden: allow users who want that first 64K of memory to be available to the kernel disable the quirk, via CONFIG_X86_RESERVE_LOW_64K=n. Also, allow the early reservation to overlap with other early reservations. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/setup.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 33719544a224..786c1886ae53 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -735,13 +735,14 @@ static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
"%s detected: BIOS may corrupt low RAM, working it around.\n",
d->ident);
- reserve_early(0x0, 0x10000, "BIOS quirk");
+ reserve_early_overlap_ok(0x0, 0x10000, "BIOS quirk");
return 0;
}
/* List of systems that have known low memory corruption BIOS problems */
static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
+#ifdef CONFIG_X86_RESERVE_LOW_64K
{
.callback = dmi_low_memory_corruption,
.ident = "AMI BIOS",
@@ -757,6 +758,7 @@ static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
},
},
{}
+#endif
};
/*
OpenPOWER on IntegriCloud