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;

Reply via email to