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-all
mailing list