diff options
author | Richard Henderson <rth@redhat.com> | 2014-05-29 11:57:39 -0400 |
---|---|---|
committer | Will Newton <will.newton@linaro.org> | 2014-07-03 15:25:30 +0100 |
commit | 289c2dc3764625068bf11332f482266a334f2c9f (patch) | |
tree | f3f8bccc80a73aed0d2c64b18193293edc9d2831 | |
parent | a0a2dbe4c4544629799caf38706eac80d029124b (diff) |
aarch64: Fix error return from __ioctl
Forgotten in ca3cfa40c16ef34c74951a07a57cfcbcd58898b1
where the error branch was moved from PSEUDO_RET.
-rw-r--r-- | libc/ports/ChangeLog.aarch64.linaro | 5 | ||||
-rw-r--r-- | libc/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S | 13 |
2 files changed, 12 insertions, 6 deletions
diff --git a/libc/ports/ChangeLog.aarch64.linaro b/libc/ports/ChangeLog.aarch64.linaro index 75f73bbdb..f7c952c64 100644 --- a/libc/ports/ChangeLog.aarch64.linaro +++ b/libc/ports/ChangeLog.aarch64.linaro @@ -1,3 +1,8 @@ +2014-05-30 Richard Henderson <rth@twiddle.net> + + * sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl): Remove the + use of PSEUDO_RET; perform the error check directly. + 2014-05-29 Richard Henderson <rth@twiddle.net> * sysdeps/unix/sysv/linux/aarch64/sysdep.h (INTERNAL_VSYSCALL_NCS): diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/libc/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S index 4443f5a4a..8920a202a 100644 --- a/libc/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S +++ b/libc/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S @@ -20,11 +20,12 @@ .text ENTRY(__ioctl) - movz x8, #__NR_ioctl - sxtw x0, w0 - svc #0x0 - cmn x0, #0x1, lsl #12 - PSEUDO_RET - PSEUDO_END (__ioctl) + mov x8, #__NR_ioctl + sxtw x0, w0 + svc #0x0 + cmn x0, #4095 + b.cs .Lsyscall_error + ret +PSEUDO_END (__ioctl) weak_alias (__ioctl, ioctl) |