aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2009-05-15 16:05:16 -0400
committerIngo Molnar <mingo@elte.hu>2009-05-18 03:33:29 -0400
commitf1bdb523880c7f6990e9e8e50b0fc972ca475e84 (patch)
treebf46a5a0f06b5b1a28cc392ee0aab0d454951915 /arch
parent629e15d245f46bef9d26199b450f882f9437a8fe (diff)
x86, irq: don't call mp_config_acpi_gsi() if update_mptable is not enabled
Len expressed concern that the update_mptable feature has side-effects on the ACPI code. Make it sure explicitly that the code only ever gets called if the (default disabled) update_mptable boot quirk option is disabled. [ Impact: isolate the update_mptable feature from ACPI code more ] Signed-off-by: Yinghai Lu <yinghai@kernel.org> Cc: Len Brown <lenb@kernel.org> LKML-Reference: <4A0DC832.5090200@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/include/asm/mpspec.h9
-rw-r--r--arch/x86/kernel/acpi/boot.c4
-rw-r--r--arch/x86/kernel/mpparse.c2
3 files changed, 13 insertions, 2 deletions
diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h
index c34961a45ec0..3dcbaaaa363e 100644
--- a/arch/x86/include/asm/mpspec.h
+++ b/arch/x86/include/asm/mpspec.h
@@ -87,6 +87,15 @@ static inline int acpi_probe_gsi(void)
87} 87}
88#endif /* CONFIG_ACPI */ 88#endif /* CONFIG_ACPI */
89 89
90#ifdef CONFIG_X86_MPPARSE
91extern int enable_update_mptable;
92#else
93static inline int enable_update_mptable(void)
94{
95 return 0;
96}
97#endif
98
90#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS) 99#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
91 100
92struct physid_mask { 101struct physid_mask {
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 4af63dfb0f06..844e5e25213b 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1226,7 +1226,9 @@ int mp_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity)
1226 ioapic_pin); 1226 ioapic_pin);
1227 return gsi; 1227 return gsi;
1228 } 1228 }
1229 mp_config_acpi_gsi(dev, gsi, trigger, polarity); 1229
1230 if (enable_update_mptable)
1231 mp_config_acpi_gsi(dev, gsi, trigger, polarity);
1230 1232
1231 set_io_apic_irq_attr(&irq_attr, ioapic, ioapic_pin, 1233 set_io_apic_irq_attr(&irq_attr, ioapic, ioapic_pin,
1232 trigger == ACPI_EDGE_SENSITIVE ? 0 : 1, 1234 trigger == ACPI_EDGE_SENSITIVE ? 0 : 1,
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index e6bf9d08e503..651c93b28862 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -957,7 +957,7 @@ out:
957 return 0; 957 return 0;
958} 958}
959 959
960static int __initdata enable_update_mptable; 960int enable_update_mptable;
961 961
962static int __init update_mptable_setup(char *str) 962static int __init update_mptable_setup(char *str)
963{ 963{