summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/e820.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-10 17:30:40 +0200
committerIngo Molnar <mingo@elte.hu>2008-07-10 18:55:31 +0200
commit3b33553badcde952adcf3b3ba5faae38d7d85071 (patch)
treee6f20de95b23a54689776e772ad25561ae109b69 /arch/x86/kernel/e820.c
parentMerge branch 'x86/core' into x86/generalize-visws (diff)
downloadlinux-3b33553badcde952adcf3b3ba5faae38d7d85071.tar.xz
linux-3b33553badcde952adcf3b3ba5faae38d7d85071.zip
x86: add early quirk support
Add early quirks support. In preparation of enabling the generic architecture to boot on a VISWS. This will allow us to remove the VISWS subarch and all its complications. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/e820.c')
-rw-r--r--arch/x86/kernel/e820.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 9836a079cfd9..269d367d2ace 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -1297,6 +1297,11 @@ void __init e820_reserve_resources(void)
}
}
+/*
+ * Non-standard memory setup can be specified via this quirk:
+ */
+char * (*arch_memory_setup_quirk)(void);
+
char *__init default_machine_specific_memory_setup(void)
{
char *who = "BIOS-e820";
@@ -1337,6 +1342,12 @@ char *__init default_machine_specific_memory_setup(void)
char *__init __attribute__((weak)) machine_specific_memory_setup(void)
{
+ if (arch_memory_setup_quirk) {
+ char *who = arch_memory_setup_quirk();
+
+ if (who)
+ return who;
+ }
return default_machine_specific_memory_setup();
}