aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/mpparse.c
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-07-19 05:07:25 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-20 03:18:17 -0400
commit3c9cb6de1e5ad37d1558fdb0d9d2bed5a7bac0d9 (patch)
treef579e0c0a09c6df7fc0fbf6e8008920eec325e2b /arch/x86/kernel/mpparse.c
parent5f1f2b3d9dbaee82cd532f28da459adcbf611499 (diff)
x86: introduce x86_quirks
introduce x86_quirks array of boot-time quirk methods. No change in functionality intended. Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/mpparse.c')
-rw-r--r--arch/x86/kernel/mpparse.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index 3b25e49380c6..3cbd2df3abe4 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -27,6 +27,7 @@
27#include <asm/bios_ebda.h> 27#include <asm/bios_ebda.h>
28#include <asm/e820.h> 28#include <asm/e820.h>
29#include <asm/trampoline.h> 29#include <asm/trampoline.h>
30#include <asm/setup.h>
30 31
31#include <mach_apic.h> 32#include <mach_apic.h>
32#ifdef CONFIG_X86_32 33#ifdef CONFIG_X86_32
@@ -726,20 +727,14 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
726static struct intel_mp_floating *mpf_found; 727static struct intel_mp_floating *mpf_found;
727 728
728/* 729/*
729 * Machine specific quirk for finding the SMP config before other setup
730 * activities destroy the table:
731 */
732int (*mach_get_smp_config_quirk)(unsigned int early);
733
734/*
735 * Scan the memory blocks for an SMP configuration block. 730 * Scan the memory blocks for an SMP configuration block.
736 */ 731 */
737static void __init __get_smp_config(unsigned int early) 732static void __init __get_smp_config(unsigned int early)
738{ 733{
739 struct intel_mp_floating *mpf = mpf_found; 734 struct intel_mp_floating *mpf = mpf_found;
740 735
741 if (mach_get_smp_config_quirk) { 736 if (x86_quirks->mach_get_smp_config) {
742 if (mach_get_smp_config_quirk(early)) 737 if (x86_quirks->mach_get_smp_config(early))
743 return; 738 return;
744 } 739 }
745 if (acpi_lapic && early) 740 if (acpi_lapic && early)
@@ -899,14 +894,12 @@ static int __init smp_scan_config(unsigned long base, unsigned long length,
899 return 0; 894 return 0;
900} 895}
901 896
902int (*mach_find_smp_config_quirk)(unsigned int reserve);
903
904static void __init __find_smp_config(unsigned int reserve) 897static void __init __find_smp_config(unsigned int reserve)
905{ 898{
906 unsigned int address; 899 unsigned int address;
907 900
908 if (mach_find_smp_config_quirk) { 901 if (x86_quirks->mach_find_smp_config) {
909 if (mach_find_smp_config_quirk(reserve)) 902 if (x86_quirks->mach_find_smp_config(reserve))
910 return; 903 return;
911 } 904 }
912 /* 905 /*