summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2020-09-03 20:02:03 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2020-09-03 20:02:03 +0000
commitb456ece07ad4529acead24e126023468a96efab0 (patch)
treed086105b9ecd63e6ec948cf9db3c728df9a1f993 /sys/arch
parentc900de3182d6d269438563b8a7643886737132a2 (diff)
Sprinkle some more eieio(); seems to avoid triggering the KASSERT(new > old).
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/powerpc64/dev/xive.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/arch/powerpc64/dev/xive.c b/sys/arch/powerpc64/dev/xive.c
index 0271b605f17..b6796f3addd 100644
--- a/sys/arch/powerpc64/dev/xive.c
+++ b/sys/arch/powerpc64/dev/xive.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xive.c,v 1.11 2020/08/30 19:07:00 kettenis Exp $ */
+/* $OpenBSD: xive.c,v 1.12 2020/09/03 20:02:02 kettenis Exp $ */
/*
* Copyright (c) 2020 Mark Kettenis <kettenis@openbsd.org>
*
@@ -232,6 +232,7 @@ xive_attach(struct device *parent, struct device *self, void *aux)
/* Synchronize hardware state to software state. */
xive_write_1(sc, XIVE_TM_CPPR_HV, xive_prio(curcpu()->ci_cpl));
+ eieio();
}
int
@@ -355,8 +356,10 @@ xive_setipl(int new)
msr = intr_disable();
ci->ci_cpl = new;
- if (newprio != oldprio)
+ if (newprio != oldprio) {
xive_write_1(sc, XIVE_TM_CPPR_HV, newprio);
+ eieio();
+ }
intr_restore(msr);
}
@@ -431,7 +434,6 @@ xive_hvi(struct trapframe *frame)
ci->ci_cpl = old;
xive_write_1(sc, XIVE_TM_CPPR_HV, xive_prio(old));
-
eieio();
}
}