lkml.org 
[lkml]   [2011]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 71/75] x86: ioapic: Use irq_data->state
    Use the state information in irq_data. That avoids a radix-tree lookup
    from apic_ack_level() and simplifies setup_ioapic_dest().

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    arch/x86/kernel/apic/io_apic.c | 15 +++++++--------
    1 file changed, 7 insertions(+), 8 deletions(-)

    Index: linux-2.6-tip/arch/x86/kernel/apic/io_apic.c
    ===================================================================
    --- linux-2.6-tip.orig/arch/x86/kernel/apic/io_apic.c
    +++ linux-2.6-tip/arch/x86/kernel/apic/io_apic.c
    @@ -2462,7 +2462,7 @@ static void ack_apic_level(struct irq_da
    irq_complete_move(cfg);
    #ifdef CONFIG_GENERIC_PENDING_IRQ
    /* If we are moving the irq we need to mask it */
    - if (unlikely(irq_to_desc(irq)->status & IRQ_MOVE_PENDING)) {
    + if (unlikely(irqd_is_setaffinity_pending(data))) {
    do_unmask_irq = 1;
    mask_ioapic(cfg);
    }
    @@ -3868,8 +3868,8 @@ int acpi_get_override_irq(u32 gsi, int *
    void __init setup_ioapic_dest(void)
    {
    int pin, ioapic, irq, irq_entry;
    - struct irq_desc *desc;
    const struct cpumask *mask;
    + struct irq_data *idata;

    if (skip_ioapic_setup == 1)
    return;
    @@ -3884,21 +3884,20 @@ void __init setup_ioapic_dest(void)
    if ((ioapic > 0) && (irq > 16))
    continue;

    - desc = irq_to_desc(irq);
    + idata = irq_get_irq_data(irq);

    /*
    * Honour affinities which have been set in early boot
    */
    - if (desc->status &
    - (IRQ_NO_BALANCING | IRQ_AFFINITY_SET))
    - mask = desc->irq_data.affinity;
    + if (!irqd_can_balance(idata) || irqd_affinity_was_set(idata))
    + mask = idata->affinity;
    else
    mask = apic->target_cpus();

    if (intr_remapping_enabled)
    - ir_ioapic_set_affinity(&desc->irq_data, mask, false);
    + ir_ioapic_set_affinity(idata, mask, false);
    else
    - ioapic_set_affinity(&desc->irq_data, mask, false);
    + ioapic_set_affinity(idata, mask, false);
    }

    }



    \
     
     \ /
      Last update: 2011-02-11 00:43    [W:0.021 / U:31.436 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site