summaryrefslogtreecommitdiff
path: root/arch/mips/kernel/entry.S
diff options
context:
space:
mode:
authorKevin D. Kissell <kevink@mips.com>2007-07-12 19:21:08 +0400
committerRalf Baechle <ralf@linux-mips.org>2007-07-12 20:41:17 +0400
commit0db34215c7e0ef618e7b29fbf271194ca5434f8e (patch)
tree261d8cd77fad2d661157ee5e5bde8e3fdc8c96b9 /arch/mips/kernel/entry.S
parentbd0765098bf22eb8b1319f649a4c3301b40ec04c (diff)
downloadlinux-0db34215c7e0ef618e7b29fbf271194ca5434f8e.tar.xz
[MIPS] SMTC: Interrupt mask backstop hack
To support multiple TC microthreads acting as "CPUs" within a VPE, VPE-wide interrupt mask bits must be specially manipulated during interrupt handling. To support legacy drivers and interrupt controller management code, SMTC has a "backstop" to track and if necessary restore the interrupt mask. This has some performance impact on interrupt service overhead. Disable it only if you know what you are doing. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/entry.S')
-rw-r--r--arch/mips/kernel/entry.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index 686249c5c328..e29598ae939d 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -84,6 +84,7 @@ FEXPORT(restore_all) # restore full frame
LONG_S sp, TI_REGS($28)
jal deferred_smtc_ipi
LONG_S s0, TI_REGS($28)
+#ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP
/* Re-arm any temporarily masked interrupts not explicitly "acked" */
mfc0 v0, CP0_TCSTATUS
ori v1, v0, TCSTATUS_IXMT
@@ -110,6 +111,7 @@ FEXPORT(restore_all) # restore full frame
_ehb
xor t0, t0, t3
mtc0 t0, CP0_TCCONTEXT
+#endif /* CONFIG_MIPS_MT_SMTC_IM_BACKSTOP */
#endif /* CONFIG_MIPS_MT_SMTC */
.set noat
RESTORE_TEMP