svn commit: r335135 - head/sys/amd64/linux

Konstantin Belousov kib at FreeBSD.org
Thu Jun 14 12:35:58 UTC 2018


Author: kib
Date: Thu Jun 14 12:35:57 2018
New Revision: 335135
URL: https://svnweb.freebsd.org/changeset/base/335135

Log:
  linuxolator/amd64: Don't mangle %r10 on return from syscall for EJUSTRETURN.
  
  This fixes the %r10 content for rt_sigreturn.
  
  Submitted by:	Yanko Yankulov <yanko.yankulov at gmail.com>
  MFC after:	1 week

Modified:
  head/sys/amd64/linux/linux_sysvec.c

Modified: head/sys/amd64/linux/linux_sysvec.c
==============================================================================
--- head/sys/amd64/linux/linux_sysvec.c	Thu Jun 14 12:14:51 2018	(r335134)
+++ head/sys/amd64/linux/linux_sysvec.c	Thu Jun 14 12:35:57 2018	(r335135)
@@ -228,7 +228,8 @@ linux_set_syscall_retval(struct thread *td, int error)
 	 * the syscall.  So, do not clobber %rdx and %r10.
 	 */
 	td->td_retval[1] = frame->tf_rdx;
-	frame->tf_r10 = frame->tf_rcx;
+	if (error != EJUSTRETURN)
+		frame->tf_r10 = frame->tf_rcx;
 
 	cpu_set_syscall_retval(td, error);
 


More information about the svn-src-head mailing list