diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-07-19 05:07:25 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-20 03:18:17 -0400 |
commit | 3c9cb6de1e5ad37d1558fdb0d9d2bed5a7bac0d9 (patch) | |
tree | f579e0c0a09c6df7fc0fbf6e8008920eec325e2b /arch/x86/kernel/mpparse.c | |
parent | 5f1f2b3d9dbaee82cd532f28da459adcbf611499 (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.c | 17 |
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) | |||
726 | static struct intel_mp_floating *mpf_found; | 727 | static 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 | */ | ||
732 | int (*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 | */ |
737 | static void __init __get_smp_config(unsigned int early) | 732 | static 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 | ||
902 | int (*mach_find_smp_config_quirk)(unsigned int reserve); | ||
903 | |||
904 | static void __init __find_smp_config(unsigned int reserve) | 897 | static 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 | /* |