diff options
Diffstat (limited to 'sys/arm64/linux/linux_sysvec.c')
-rw-r--r-- | sys/arm64/linux/linux_sysvec.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c index 5b33b63fba92..8619535c57e9 100644 --- a/sys/arm64/linux/linux_sysvec.c +++ b/sys/arm64/linux/linux_sysvec.c @@ -141,6 +141,13 @@ linux_set_syscall_retval(struct thread *td, int error) td->td_retval[1] = td->td_frame->tf_x[1]; cpu_set_syscall_retval(td, error); + + if (__predict_false(error != 0)) { + if (error != ERESTART && error != EJUSTRETURN) { + td->td_frame->tf_x[0] = + SV_ABI_ERRNO(td->td_proc, error); + } + } } static int |