diff options
author | 2012-04-19 18:12:40 +0000 | |
---|---|---|
committer | 2012-04-19 18:12:40 +0000 | |
commit | d5e2f8ab58852e16f01063a745f6894fc7601ee0 (patch) | |
tree | 28baf8bf4294fef5ceb09d1fee46464c16dbca45 | |
parent | relayd re-uses the event callbacks and passes the value of iev.data (diff) | |
download | wireguard-openbsd-d5e2f8ab58852e16f01063a745f6894fc7601ee0.tar.xz wireguard-openbsd-d5e2f8ab58852e16f01063a745f6894fc7601ee0.zip |
Be sure to update the currently active ASID in pmap_activate() if invoked on
behalf of curproc.
-rw-r--r-- | sys/arch/mips64/mips64/pmap.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/arch/mips64/mips64/pmap.c b/sys/arch/mips64/mips64/pmap.c index 073fbec6d1f..8ef94263b94 100644 --- a/sys/arch/mips64/mips64/pmap.c +++ b/sys/arch/mips64/mips64/pmap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pmap.c,v 1.58 2012/04/06 20:11:18 miod Exp $ */ +/* $OpenBSD: pmap.c,v 1.59 2012/04/19 18:12:40 miod Exp $ */ /* * Copyright (c) 2001-2004 Opsycon AB (www.opsycon.se / www.opsycon.com) @@ -600,10 +600,13 @@ pmap_activate(struct proc *p) { pmap_t pmap = p->p_vmspace->vm_map.pmap; struct cpu_info *ci = curcpu(); + uint id; ci->ci_curpmap = pmap; p->p_addr->u_pcb.pcb_segtab = pmap->pm_segtab; - pmap_alloc_tlbpid(p); + id = pmap_alloc_tlbpid(p); + if (p == ci->ci_curproc) + tlb_set_pid(id); } /* |