Other architectures have this assignment in their setregs()
implementation.  I don't fully understand why though.  Diff below
makes arm64 consistent with the rest, but I don't think it fixes
anything.

Index: arch/arm64/arm64/machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/arm64/arm64/machdep.c,v
retrieving revision 1.19
diff -u -p -r1.19 machdep.c
--- arch/arm64/arm64/machdep.c  9 Aug 2017 03:44:33 -0000       1.19
+++ arch/arm64/arm64/machdep.c  13 Aug 2017 16:08:27 -0000
@@ -398,6 +398,8 @@ setregs(struct proc *p, struct exec_pack
        tf->tf_lr = pack->ep_entry;
        tf->tf_elr = pack->ep_entry; /* ??? */
        tf->tf_spsr = PSR_M_EL0t;
+
+       retval[1] = 0;
 }
 
 void

Reply via email to