parisc: fix dino/gsc interrupts
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Thu, 2 Dec 2010 23:36:47 +0000 (23:36 +0000)
committerKyle McMartin <kyle@mcmartin.ca>
Sat, 4 Dec 2010 16:14:32 +0000 (11:14 -0500)
The essential problem we're currently having is that dino (and gsc) is a
cascaded CPU interrupt.  Under the old __do_IRQ() handler, our CPU
interrupts basically did an ack followed by an end.  In the new scheme,
we replaced them with level handlers which do a mask, an ack and then an
unmask (but no end).  Instead, with the renaming of end to eoi, we
actually want to call the percpu flow handlers, because they actually
have all the characteristics we want.

This patch does the conversion and gets my C360 booting again.

Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
arch/parisc/kernel/irq.c

index 5024f643b3b1a4c75a57a08756298c5b72e874a2..48aa71106db8c4b3ec9345eb089a064edc01315f 100644 (file)
@@ -392,7 +392,7 @@ static void claim_cpu_irqs(void)
        int i;
        for (i = CPU_IRQ_BASE; i <= CPU_IRQ_MAX; i++) {
                set_irq_chip_and_handler(i, &cpu_interrupt_type,
-                       handle_level_irq);
+                                        handle_percpu_irq);
        }
 
        set_irq_handler(TIMER_IRQ, handle_percpu_irq);