aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/linux/linux_sysvec.c
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2018-06-14 12:35:57 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2018-06-14 12:35:57 +0000
commit459ccd3c5f954d23153c0c637710b0c68458c7dd (patch)
tree2ea18d201b058b53a70134749074b9c202566785 /sys/amd64/linux/linux_sysvec.c
parentef8dcce3c21a89edbe4c5cdb5f4df080f07b3eb4 (diff)
Notes
Diffstat (limited to 'sys/amd64/linux/linux_sysvec.c')
-rw-r--r--sys/amd64/linux/linux_sysvec.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/amd64/linux/linux_sysvec.c b/sys/amd64/linux/linux_sysvec.c
index cd5c8bd382dc..d51505792122 100644
--- a/sys/amd64/linux/linux_sysvec.c
+++ b/sys/amd64/linux/linux_sysvec.c
@@ -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);