Messages in this thread | | | Date | Wed, 8 Aug 2012 10:58:37 +0200 | From | Robert Richter <> | Subject | Re: do_IRQ: 1.55 No irq handler for vector (irq -1) |
| |
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
| |