patch-2.4.21 linux-2.4.21/arch/ppc/kernel/irq.c
Next file: linux-2.4.21/arch/ppc/kernel/l2cr.S
Previous file: linux-2.4.21/arch/ppc/kernel/indirect_pci.c
Back to the patch index
Back to the overall index
- Lines: 65
- Date:
2003-06-13 07:51:31.000000000 -0700
- Orig file:
linux-2.4.20/arch/ppc/kernel/irq.c
- Orig date:
2002-11-28 15:53:11.000000000 -0800
diff -urN linux-2.4.20/arch/ppc/kernel/irq.c linux-2.4.21/arch/ppc/kernel/irq.c
@@ -1,7 +1,4 @@
/*
- * BK Id: %F% %I% %G% %U% %#%
- */
-/*
* arch/ppc/kernel/irq.c
*
* Derived from arch/i386/kernel/irq.c
@@ -177,15 +174,6 @@
return 0;
}
-#if (defined(CONFIG_8xx) || defined(CONFIG_8260))
-/* Name change so we can catch standard drivers that potentially mess up
- * the internal interrupt controller on 8xx and 8260. Just bear with me,
- * I don't like this either and I am searching a better solution. For
- * now, this is what I need. -- Dan
- */
-#define request_irq request_8xxirq
-#endif
-
void free_irq(unsigned int irq, void* dev_id)
{
irq_desc_t *desc;
@@ -528,27 +516,21 @@
int irq, first = 1;
hardirq_enter( cpu );
- for (;;) {
- /*
- * Every arch is required to implement ppc_md.get_irq.
- * This function will either return an irq number or -1 to
- * indicate there are no more pending. But the first time
- * through the loop this means there wasn't and IRQ pending.
- * The value -2 is for buggy hardware and means that this IRQ
- * has already been handled. -- Tom
- */
- irq = ppc_md.get_irq( regs );
-
- if (irq >= 0)
- ppc_irq_dispatch_handler( regs, irq );
- else {
- if (irq != -2 && first)
- /* That's not SMP safe ... but who cares ? */
- ppc_spurious_interrupts++;
- break;
- }
+ /*
+ * Every platform is required to implement ppc_md.get_irq.
+ * This function will either return an irq number or -1 to
+ * indicate there are no more pending. But the first time
+ * through the loop this means there wasn't an IRQ pending.
+ * The value -2 is for buggy hardware and means that this IRQ
+ * has already been handled. -- Tom
+ */
+ while ((irq = ppc_md.get_irq(regs)) >= 0) {
+ ppc_irq_dispatch_handler(regs, irq);
first = 0;
}
+ if (irq != -2 && first)
+ /* That's not SMP safe ... but who cares ? */
+ ppc_spurious_interrupts++;
hardirq_exit( cpu );
if (softirq_pending(cpu))
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)