summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2020-09-24 17:57:57 +0000
committerderaadt <deraadt@openbsd.org>2020-09-24 17:57:57 +0000
commit0a5d27020d7db961873b9c714f1666ae128fc9aa (patch)
treea8e28fb12060637e1261aba618d468f95716c179
parentOnly perform uvm_map_inentry() checks for PROC_SP for userland pagefaults. (diff)
downloadwireguard-openbsd-0a5d27020d7db961873b9c714f1666ae128fc9aa.tar.xz
wireguard-openbsd-0a5d27020d7db961873b9c714f1666ae128fc9aa.zip
mi_ast() needs curcpu()->ci_want_resched rather than ci->ci_want_resched,
because refreshcreds() may sleep in pool_put(). Subtle isn't it... ok visa kettenis
-rw-r--r--sys/arch/mips64/mips64/trap.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/arch/mips64/mips64/trap.c b/sys/arch/mips64/mips64/trap.c
index 42a1827b845..09e18c44e44 100644
--- a/sys/arch/mips64/mips64/trap.c
+++ b/sys/arch/mips64/mips64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.147 2020/09/24 17:54:30 deraadt Exp $ */
+/* $OpenBSD: trap.c,v 1.148 2020/09/24 17:57:57 deraadt Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -147,8 +147,7 @@ int process_sstep(struct proc *, int);
void
ast(void)
{
- struct cpu_info *ci = curcpu();
- struct proc *p = ci->ci_curproc;
+ struct proc *p = curproc;
p->p_md.md_astpending = 0;
@@ -161,7 +160,7 @@ ast(void)
refreshcreds(p);
atomic_inc_int(&uvmexp.softs);
- mi_ast(p, ci->ci_want_resched);
+ mi_ast(p, curcpu()->ci_want_resched);
userret(p);
}