lkml.org 
[lkml]   [2009]   [May]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:irq/numa] x86, irq: don't call mp_config_acpi_gsi() if update_mptable is not enabled
    Commit-ID:  f1bdb523880c7f6990e9e8e50b0fc972ca475e84
    Gitweb: http://git.kernel.org/tip/f1bdb523880c7f6990e9e8e50b0fc972ca475e84
    Author: Yinghai Lu <yinghai@kernel.org>
    AuthorDate: Fri, 15 May 2009 13:05:16 -0700
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Mon, 18 May 2009 09:33:29 +0200

    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>


    ---
    arch/x86/include/asm/mpspec.h | 9 +++++++++
    arch/x86/kernel/acpi/boot.c | 4 +++-
    arch/x86/kernel/mpparse.c | 2 +-
    3 files changed, 13 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h
    index c34961a..3dcbaaa 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)
    }
    #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 {
    diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
    index 4af63df..844e5e2 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)
    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,
    diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
    index e6bf9d0..651c93b 100644
    --- a/arch/x86/kernel/mpparse.c
    +++ b/arch/x86/kernel/mpparse.c
    @@ -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)
    {

    \
     
     \ /
      Last update: 2009-05-18 09:45    [W:3.285 / U:0.188 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site