x86, irq: don't call mp_config_acpi_gsi() if update_mptable is not enabled
authorYinghai Lu <yinghai@kernel.org>
Fri, 15 May 2009 20:05:16 +0000 (13:05 -0700)
committerIngo Molnar <mingo@elte.hu>
Mon, 18 May 2009 07:33:29 +0000 (09:33 +0200)
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>
arch/x86/include/asm/mpspec.h
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/mpparse.c

index c34961a..3dcbaaa 100644 (file)
@@ -87,6 +87,15 @@ static inline int acpi_probe_gsi(void)
 }
 #endif /* CONFIG_ACPI */
 
+#ifdef CONFIG_X86_MPPARSE
+extern int enable_update_mptable;
+#else
+static inline int enable_update_mptable(void)
+{
+       return 0;
+}
+#endif
+
 #define PHYSID_ARRAY_SIZE      BITS_TO_LONGS(MAX_APICS)
 
 struct physid_mask {
index 4af63df..844e5e2 100644 (file)
@@ -1226,7 +1226,9 @@ int mp_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity)
                       ioapic_pin);
                return gsi;
        }
-       mp_config_acpi_gsi(dev, gsi, trigger, polarity);
+
+       if (enable_update_mptable)
+               mp_config_acpi_gsi(dev, gsi, trigger, polarity);
 
        set_io_apic_irq_attr(&irq_attr, ioapic, ioapic_pin,
                             trigger == ACPI_EDGE_SENSITIVE ? 0 : 1,
index e6bf9d0..651c93b 100644 (file)
@@ -957,7 +957,7 @@ out:
        return 0;
 }
 
-static int __initdata enable_update_mptable;
+int enable_update_mptable;
 
 static int __init update_mptable_setup(char *str)
 {