lkml.org 
[lkml]   [2010]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 13/15] x86 ioapic: Simplify probe_nr_irqs_gsi.
    Date
    From: Eric W. Biederman <ebiederm@xmission.com>

    Use the global gsi_end value now that all ioapics have
    valid gsi numbers instead of a combination of acpi_probe_gsi
    and walking all of the ioapics and couting their number of
    entries by hand if acpi_probe_gsi gave us an answer we did
    not like.

    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    ---
    arch/x86/include/asm/mpspec.h | 6 ------
    arch/x86/kernel/acpi/boot.c | 23 -----------------------
    arch/x86/kernel/apic/io_apic.c | 17 +++--------------
    3 files changed, 3 insertions(+), 43 deletions(-)

    diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h
    index 29994f0..c82868e 100644
    --- a/arch/x86/include/asm/mpspec.h
    +++ b/arch/x86/include/asm/mpspec.h
    @@ -105,12 +105,6 @@ extern void mp_config_acpi_legacy_irqs(void);
    struct device;
    extern int mp_register_gsi(struct device *dev, u32 gsi, int edge_level,
    int active_high_low);
    -extern int acpi_probe_gsi(void);
    -#else /* !CONFIG_ACPI: */
    -static inline int acpi_probe_gsi(void)
    -{
    - return 0;
    -}
    #endif /* CONFIG_ACPI */

    #define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
    diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
    index 9c48e99..0e514a1 100644
    --- a/arch/x86/kernel/acpi/boot.c
    +++ b/arch/x86/kernel/acpi/boot.c
    @@ -875,29 +875,6 @@ static int __init acpi_parse_madt_lapic_entries(void)
    extern int es7000_plat;
    #endif

    -int __init acpi_probe_gsi(void)
    -{
    - int idx;
    - int gsi;
    - int max_gsi = 0;
    -
    - if (acpi_disabled)
    - return 0;
    -
    - if (!acpi_ioapic)
    - return 0;
    -
    - max_gsi = 0;
    - for (idx = 0; idx < nr_ioapics; idx++) {
    - gsi = mp_gsi_routing[idx].gsi_end;
    -
    - if (gsi > max_gsi)
    - max_gsi = gsi;
    - }
    -
    - return max_gsi + 1;
    -}
    -
    static void assign_to_mp_irq(struct mpc_intsrc *m,
    struct mpc_intsrc *mp_irq)
    {
    diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
    index 764c74c..6d6def8 100644
    --- a/arch/x86/kernel/apic/io_apic.c
    +++ b/arch/x86/kernel/apic/io_apic.c
    @@ -3841,22 +3841,11 @@ int __init io_apic_get_redir_entries (int ioapic)

    void __init probe_nr_irqs_gsi(void)
    {
    - int nr = 0;
    + int nr;

    - nr = acpi_probe_gsi();
    - if (nr > nr_irqs_gsi) {
    + nr = gsi_end + 1;
    + if (nr > nr_irqs_gsi)
    nr_irqs_gsi = nr;
    - } else {
    - /* for acpi=off or acpi is not compiled in */
    - int idx;
    -
    - nr = 0;
    - for (idx = 0; idx < nr_ioapics; idx++)
    - nr += io_apic_get_redir_entries(idx);
    -
    - if (nr > nr_irqs_gsi)
    - nr_irqs_gsi = nr;
    - }

    printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
    }
    --
    1.6.5.2.143.g8cc62


    \
     
     \ /
      Last update: 2010-03-30 10:11    [W:4.059 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site