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

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)