amd64's savectx() only updates pcb_rsp and pcb_rbp, which in cpu_fork() are promptly overwriten in the child's pcb, so do the same simplification as on i386.
ok? Philip Guenther Index: vm_machdep.c =================================================================== RCS file: /cvs/src/sys/arch/amd64/amd64/vm_machdep.c,v retrieving revision 1.34 diff -u -p -r1.34 vm_machdep.c --- vm_machdep.c 3 Apr 2016 17:48:33 -0000 1.34 +++ vm_machdep.c 3 Apr 2016 18:33:03 -0000 @@ -89,13 +89,8 @@ cpu_fork(struct proc *p1, struct proc *p p2->p_md.md_flags = p1->p_md.md_flags; - /* Copy pcb from proc p1 to p2. */ - if (p1 == curproc) { - /* Sync the PCB before we copy it. */ - savectx(curpcb); - } #ifdef DIAGNOSTIC - else if (p1 != &proc0) + if (p1 != curproc && p1 != &proc0) panic("cpu_fork: curproc"); #endif *pcb = p1->p_addr->u_pcb;