[AArch64] Fix out of range branch from ioctl() and clone()
authorMarcus Shawcroft <marcus.shawcroft@linaro.org>
Sun, 12 May 2013 17:09:33 +0000 (18:09 +0100)
committerMarcus Shawcroft <marcus.shawcroft@linaro.org>
Sun, 12 May 2013 17:09:33 +0000 (18:09 +0100)
2013-05-12  Marcus Shawcroft  <marcus.shawcroft@linaro.org>

* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone):
Do not call sycall_error directly with a confitional branch.

* sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl):
Do not call sycall_error directly with a confitional branch.

ports/ChangeLog.aarch64
ports/sysdeps/unix/sysv/linux/aarch64/clone.S
ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S

index f01388f3844f7ceeb6d049d4e85e5bda5ce86bb4..a611ac22cf6722d71ea430f5c67ab1244020314d 100644 (file)
@@ -1,3 +1,11 @@
+2013-05-12  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
+
+       * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone):
+       Do not call sycall_error directly with a confitional branch.
+
+       * sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl):
+       Do not call sycall_error directly with a confitional branch.
+
 2013-03-19  Andreas Schwab  <schwab@suse.de>
 
        * sysdeps/unix/sysv/linux/aarch64/configure.in: Set
index 999ecf21ce40f910fa9e8092efc494b6fd6828be..b359e6e8a3270bb1abf398fe899a1fe620777425 100644 (file)
@@ -65,9 +65,10 @@ ENTRY(__clone)
        svc     0x0
        cmp     x0, #0
        beq     2f
-       blt     C_SYMBOL_NAME(__syscall_error)
+       blt     3f
        RET
 1:     mov     x0, #-EINVAL
+3:
        b       syscall_error
 
 2:
index b089bb55c5b5e4004efe77468dc661d557f8dae3..2e08cf708cf55f5f49bdd8a1d92536360ec9e4f7 100644 (file)
@@ -24,9 +24,7 @@ ENTRY(__ioctl)
         sxtw   x0, w0
         svc    #0x0
        cmn     x0, #0x1, lsl #12
-       b.hi    C_SYMBOL_NAME(__syscall_error)
-       ret
-
+       PSEUDO_RET
        PSEUDO_END (__ioctl)
 
 weak_alias (__ioctl, ioctl)