Re: 2.6.19-rc1 genirq causes either boot hang or "do_IRQ: cannot handle IRQ -1"

From: Muli Ben-Yehuda
Date: Fri Oct 06 2006 - 16:43:02 EST


On Fri, Oct 06, 2006 at 01:02:23PM -0700, Andrew Vasquez wrote:

> > diff -puN arch/x86_64/kernel/apic.c~x86_64-irq_regs-fix arch/x86_64/kernel/apic.c
> > --- a/arch/x86_64/kernel/apic.c~x86_64-irq_regs-fix
> > +++ a/arch/x86_64/kernel/apic.c
> > @@ -913,8 +913,10 @@ void smp_local_timer_interrupt(void)
> > * [ if a single-CPU system runs an SMP kernel then we call the local
> > * interrupt as well. Thus we cannot inline the local irq ... ]
> > */
> > -void smp_apic_timer_interrupt(void)
> > +void smp_apic_timer_interrupt(struct pt_regs *regs)
> > {
> > + struct pt_regs *old_regs = set_irq_regs(regs);
> > +
> > /*
> > * the NMI deadlock-detector uses this.
> > */
> > @@ -934,6 +936,7 @@ void smp_apic_timer_interrupt(void)
> > irq_enter();
> > smp_local_timer_interrupt();
> > irq_exit();
> > + set_irq_regs(old_regs);
> > }
> >
> > /*
>
> Patch appears to work.
>
> At least I can now boot my x86_64 box.

Patch fixes the profile_tick() problem for me too. I can boot the tip
of the tree now provided I use maxcpus=1 to work around the genirq
bug.

Cheers,
Muli
-
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/