patch-2.4.6 linux/arch/ppc/kernel/irq.c
Next file: linux/arch/ppc/kernel/m8xx_setup.c
Previous file: linux/arch/ppc/kernel/head_8xx.S
Back to the patch index
Back to the overall index
- Lines: 45
- Date:
Mon Jul 2 14:34:57 2001
- Orig file:
v2.4.5/linux/arch/ppc/kernel/irq.c
- Orig date:
Mon May 21 17:04:47 2001
diff -u --recursive --new-file v2.4.5/linux/arch/ppc/kernel/irq.c linux/arch/ppc/kernel/irq.c
@@ -1,5 +1,5 @@
/*
- * BK Id: SCCS/s.irq.c 1.23 05/17/01 18:14:21 cort
+ * BK Id: SCCS/s.irq.c 1.28 06/28/01 16:15:56 paulus
*/
/*
* arch/ppc/kernel/irq.c
@@ -531,26 +531,25 @@
{
int cpu = smp_processor_id();
int irq;
- hardirq_enter( cpu );
+ hardirq_enter(cpu);
/* every arch is required to have a get_irq -- Cort */
- irq = ppc_md.get_irq( regs );
+ irq = ppc_md.get_irq(regs);
- if ( irq < 0 )
- {
+ if (irq >= 0) {
+ ppc_irq_dispatch_handler( regs, irq );
+ } else if (irq != -2) {
/* -2 means ignore, already handled */
- if (irq != -2)
- {
+ if (ppc_spurious_interrupts < 10)
printk(KERN_DEBUG "Bogus interrupt %d from PC = %lx\n",
irq, regs->nip);
- /* That's not SMP safe ... but who cares ? */
- ppc_spurious_interrupts++;
- }
- goto out;
+ /* That's not SMP safe ... but who cares ? */
+ ppc_spurious_interrupts++;
}
- ppc_irq_dispatch_handler( regs, irq );
-out:
hardirq_exit( cpu );
+
+ if (softirq_pending(cpu))
+ do_softirq();
return 1; /* lets ret_from_int know we can do checks */
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)