kernel 2.6.3 on JS20
Jake Moilanen
moilanen at austin.ibm.com
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)
Thanks,
Jake
** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc64-dev
mailing list