Set the current pmap in macppc's pmap_activate
authorgkoehler <gkoehler@openbsd.org>
Tue, 21 Feb 2023 04:49:43 +0000 (04:49 +0000)
committergkoehler <gkoehler@openbsd.org>
Tue, 21 Feb 2023 04:49:43 +0000 (04:49 +0000)
commit92f10c9019a000d39ae6a122012b17d264586ac0
tree2a890d229196a70eca9dfc9c2b2938c22b567720
parent2940e88442b2728e7983be4e932bbf10d71df437
Set the current pmap in macppc's pmap_activate

This fixes a possible freeze in execve(2).  It sometimes froze when a
dual-cpu macppc started daemons during boot.  There is a chance that
uvm_map.c uvmspace_exec sees ovm->vm_refcnt != 1 and switches curproc
to a new pmap.  If this happened, then execve froze by trying to
copyout to the wrong pmap; curpcb->pcb_pm was old.  Fix by setting
pointers when uvmspace_exec calls pmap_activate.

ok miod@
sys/arch/powerpc/powerpc/pmap.c