[PATCH] fix local_irq_save()/local_irq_restore() when CONFIG_CPU_MIPSR2 & CONFIG_IRQ_CPU

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

 



Hello all,

I was unable to get my R4KECr2 board working with CONFIG_CPU_MIPSR2 &
CONFIG_IRQ_CPU, irq delivery is not working.

local_irq_restore() logic is to check that "flags" is non zero, and
enable irq accordingly.

But "flags" comes directly from di, which according to mips instruction
set, saves whole status content, not just IE bit.

Attached patch to fix this.


Signed-off-by: Maxime Bizon <mbizon@xxxxxxxxxx>

--- linux.git/include/asm-mips/interrupt.h.old	2005-12-20 06:20:44.000000000 +0100
+++ linux.git/include/asm-mips/interrupt.h	2005-12-20 06:21:02.000000000 +0100
@@ -93,6 +93,7 @@
 	"	.set	noat						\n"
 #ifdef CONFIG_CPU_MIPSR2
 	"	di	\\result					\n"
+	"	andi	\\result, 1					\n"
 #else
 	"	mfc0	\\result, $12					\n"
 	"	ori	$1, \\result, 1					\n"



Thanks,

-- 
Maxime


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

  Powered by Linux