diff options
author | Miguel de Icaza <miguel@nuclecu.unam.mx> | 1997-08-26 04:34:55 +0000 |
---|---|---|
committer | Miguel de Icaza <miguel@nuclecu.unam.mx> | 1997-08-26 04:34:55 +0000 |
commit | 4fe20d6225d183f975cc26ff41e79613ce60b914 (patch) | |
tree | c78359ad250432f599d01d0ac3b3f49b6f1dcdfe | |
parent | c399d60bf54f28c429413290e83d6c1e859c737d (diff) |
irq_enter/irq_enter fix, as described by Ralf
-rw-r--r-- | arch/mips/sgi/kernel/indy_int.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/mips/sgi/kernel/indy_int.c b/arch/mips/sgi/kernel/indy_int.c index efc174795..2d23372ae 100644 --- a/arch/mips/sgi/kernel/indy_int.c +++ b/arch/mips/sgi/kernel/indy_int.c @@ -4,7 +4,7 @@ * * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) * - * $Id: indy_int.c,v 1.2 1997/06/28 23:27:29 ralf Exp $ + * $Id: indy_int.c,v 1.2 1997/07/01 09:00:58 ralf Exp $ */ #include <linux/config.h> @@ -277,8 +277,10 @@ atomic_t __mips_bh_counter; asmlinkage void do_IRQ(int irq, struct pt_regs * regs) { struct irqaction * action = *(irq + irq_action); - + int cpu = smp_processor_id (); + lock_kernel(); + irq_enter (cpu, irq); kstat.interrupts[irq]++; printk("Got irq %d, press a key.", irq); prom_getchar(); @@ -289,6 +291,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs * regs) action->handler(irq, action->dev_id, regs); action = action->next; } + irq_exit (cpu, irq); unlock_kernel(); } |