Re: do_IRQ: 1.55 No irq handler for vector (irq -1)

From: Robert Richter
Date: Wed Aug 08 2012 - 04:58:50 EST


On 07.08.12 15:39:07, Suresh Siddha wrote:
> Boris, Robert, can you check if the below patch makes both of your
> systems happy again (essentially not allowing the vector to change for
> legacy irq's, which also allows the RTE to be set correctly in the smp
> case etc)? Based on your results and some more thinking, I will send a
> detailed patch with changelog tomorrow.
>
> arch/x86/kernel/apic/io_apic.c | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)

Suresh,

with your patch applied the sata device works fine and the system
boots, no issues seen.

Thanks,

-Robert

>
> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> index a6c64aa..4b98610 100644
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -1356,6 +1356,15 @@ static void setup_ioapic_irq(unsigned int irq, struct irq_cfg *cfg,
> if (!IO_APIC_IRQ(irq))
> return;
>
> + /*
> + * For legacy irqs, cfg->domain starts with cpu 0. Now that IO-APIC
> + * can handle this irq and the apic driver is finialized at this point,
> + * update the cfg->domain.
> + */
> + if (irq < legacy_pic->nr_legacy_irqs &&
> + cpumask_equal(cfg->domain, cpumask_of(0)))
> + apic->vector_allocation_domain(0, cfg->domain, cpu_online_mask);
> +
> if (assign_irq_vector(irq, cfg, apic->target_cpus()))
> return;
>
>
>
>

--
Advanced Micro Devices, Inc.
Operating System Research Center

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/