summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2007-11-09 17:08:44 +0000
committermiod <miod@openbsd.org>2007-11-09 17:08:44 +0000
commitb946115694a6b14e7be07173f20963d1d92f47f0 (patch)
tree7199c968a76b76a3ace71aee1245a3f8374f8afd
parentParse CVSROOT/config and set umask on server-side, too. (diff)
downloadwireguard-openbsd-b946115694a6b14e7be07173f20963d1d92f47f0.tar.xz
wireguard-openbsd-b946115694a6b14e7be07173f20963d1d92f47f0.zip
On MULTIPROCESSOR kernels, don't forget to grab the kernel lock when
processing soft interrupts; and there was much rejoicing.
-rw-r--r--sys/arch/m88k/m88k/m88k_machdep.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/arch/m88k/m88k/m88k_machdep.c b/sys/arch/m88k/m88k/m88k_machdep.c
index 01469ce3f8e..ede3f353edc 100644
--- a/sys/arch/m88k/m88k/m88k_machdep.c
+++ b/sys/arch/m88k/m88k/m88k_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: m88k_machdep.c,v 1.27 2007/11/06 21:48:44 miod Exp $ */
+/* $OpenBSD: m88k_machdep.c,v 1.28 2007/11/09 17:08:44 miod Exp $ */
/*
* Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr.
* Copyright (c) 1996 Nivas Madhur
@@ -323,6 +323,10 @@ dosoftint()
if ((sir = *ssir) == 0)
return;
+#ifdef MULTIPROCESSOR
+ __mp_lock(&kernel_lock);
+#endif
+
atomic_clearbits_int(ssir, sir);
uvmexp.softs++;
@@ -344,6 +348,10 @@ dosoftint()
if (ISSET(sir, SIR_CLOCK))
softclock();
+
+#ifdef MULTIPROCESSOR
+ __mp_unlock(&kernel_lock);
+#endif
}
int