An IRQ handler fix for arch/mips/dec/irq.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

 The epilogue for the DECstation's IRQ handler is buggy -- it permits
infinite interrupt recursion which may lead to a stack overflow.  I wasn't
able to check if that's the reason of random crashes I get when I run
strace at the console, yet, but it might be -- the load might be up to 10k
interrupts per second if data is available in time.

 Please apply.

  Maciej

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

patch-mips-2.4.0-do_irq-0
diff -up --recursive --new-file linux-mips-2.4.0-20010126.macro/arch/mips/dec/irq.c linux-mips-2.4.0-20010126/arch/mips/dec/irq.c
--- linux-mips-2.4.0-20010126.macro/arch/mips/dec/irq.c	Sun Dec  3 05:26:46 2000
+++ linux-mips-2.4.0-20010126/arch/mips/dec/irq.c	Thu Feb  8 07:44:10 2001
@@ -136,8 +136,8 @@ asmlinkage void do_IRQ(int irq, struct p
 	} while (action);
 	if (do_random & SA_SAMPLE_RANDOM)
 	    add_interrupt_randomness(irq);
-	unmask_irq(irq);
 	__cli();
+	unmask_irq(irq);
     }
     irq_exit(cpu, irq);
 



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux