kernel 2.6.3 on JS20

Jake Moilanen moilanen at
Sat Mar 6 02:16:14 EST 2004

> OK, I see, the thing I missed previously is that we need to set the
> IRQ_DISABLED bit in irq_desc[virq].status for the virtual irq
> corresponding to the real irq we got.  Your patch looks OK except for
> a couple of very minor points.  I would call the real->virt mapping
> function in irq.c real_irq_to_virt_slow() and leave the one in xics.c
> as real_irq_to_virt().  And I would structure the test as:
> 	} else {
> 		irq = real_irq_to_virt(vec);
> 		if (irq == NO_IRQ)
> 			irq = real_irq_to_virt_slow(vec);
> 		if (irq == NO_IRQ) {
> 			printk(...)

Another problem I do see is when you do disable the IRQ.  Don't you need
to EOI the interrupt.  Otherwise that processor's CPPR is going to be
stuck w/ the phantom interrupt's priority.  (Of course this would
currently be fixed due to nested interrupts not being handled correctly,
and if a more favored interrupt came in, it would write the CPPR back
down to base)


** Sent via the linuxppc64-dev mail list. See

More information about the Linuxppc64-dev mailing list