diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2020-09-24 20:33:11 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2020-09-24 20:33:11 +0000 |
commit | 57692d1a341b5570c1f66a786e5568d331db359f (patch) | |
tree | 9dc146ae0d7203f9107293761e4d716eddd52ea9 /sys/arch/alpha | |
parent | 4de50dc32df03b28e25503e930ae08eff9a5e61a (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.c | 8 |
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)); |