summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorVisa Hankala <visa@cvs.openbsd.org>2017-02-19 09:53:38 +0000
committerVisa Hankala <visa@cvs.openbsd.org>2017-02-19 09:53:38 +0000
commita9b0e3b7f2ba0b4b6e720e7ee64a6eca461fa059 (patch)
tree8061b4a70271ab93e9aaa709c1c450f041c1d199 /sys
parent2af95003a6848ab8b9c968daad70fd5580e8fb96 (diff)
Skip IO interrupt mask update on secondary CPUs when restoring IPL.
The mask is node-wide, and only the primary CPU handles IO interrupts.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/loongson/loongson/loongson3_intr.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/arch/loongson/loongson/loongson3_intr.c b/sys/arch/loongson/loongson/loongson3_intr.c
index fa0f620669c..445c36d4eb0 100644
--- a/sys/arch/loongson/loongson/loongson3_intr.c
+++ b/sys/arch/loongson/loongson/loongson3_intr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: loongson3_intr.c,v 1.4 2016/12/12 16:25:47 visa Exp $ */
+/* $OpenBSD: loongson3_intr.c,v 1.5 2017/02/19 09:53:37 visa Exp $ */
/*
* Copyright (c) 2016 Visa Hankala
@@ -363,8 +363,9 @@ loongson3_splx(int newipl)
setipl(ci, newipl);
- REGVAL(LS3_IRT_INTENSET(0)) =
- loongson3_intem & ~loongson3_imask[newipl];
+ if (CPU_IS_PRIMARY(ci))
+ REGVAL(LS3_IRT_INTENSET(0)) =
+ loongson3_intem & ~loongson3_imask[newipl];
if (ci->ci_softpending != 0 && newipl < IPL_SOFTINT)
setsoftintr0();