summaryrefslogtreecommitdiff
path: root/sys/arch/alpha
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2020-09-24 20:33:11 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2020-09-24 20:33:11 +0000
commit57692d1a341b5570c1f66a786e5568d331db359f (patch)
tree9dc146ae0d7203f9107293761e4d716eddd52ea9 /sys/arch/alpha
parent4de50dc32df03b28e25503e930ae08eff9a5e61a (diff)
ast() was lacking refreshcreds(). That can sleep, and mi_ast() requires
the current cpu so use curcpu() rather than the old cpu in ci. ok kettenis
Diffstat (limited to 'sys/arch/alpha')
-rw-r--r--sys/arch/alpha/alpha/trap.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/arch/alpha/alpha/trap.c b/sys/arch/alpha/alpha/trap.c
index a3b526c46d2..adf5e9ff0f8 100644
--- a/sys/arch/alpha/alpha/trap.c
+++ b/sys/arch/alpha/alpha/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.90 2020/09/24 17:54:28 deraadt Exp $ */
+/* $OpenBSD: trap.c,v 1.91 2020/09/24 20:33:10 deraadt Exp $ */
/* $NetBSD: trap.c,v 1.52 2000/05/24 16:48:33 thorpej Exp $ */
/*-
@@ -707,8 +707,7 @@ void
ast(framep)
struct trapframe *framep;
{
- struct cpu_info *ci = curcpu();
- struct proc *p = ci->ci_curproc;
+ struct proc *p = curproc;
p->p_md.md_tf = framep;
p->p_md.md_astpending = 0;
@@ -718,8 +717,9 @@ ast(framep)
panic("ast and not user");
#endif
+ refreshcreds(p);
atomic_add_int(&uvmexp.softs, 1);
- mi_ast(p, ci->ci_want_resched);
+ mi_ast(p, curcpu()->ci_want_resched);
/* Do any deferred user pmap operations. */
PMAP_USERRET(vm_map_pmap(&p->p_vmspace->vm_map));