diff options
author | Ian Lance Taylor <iant@golang.org> | 2016-02-10 21:46:51 -0800 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2016-02-12 00:07:29 +0000 |
commit | cc0a04d351c69a99f65342ad5822f2bba8b247d0 (patch) | |
tree | 3e63e89cae82b60fcddf77d2e7672b0cb747f6f4 /src/runtime/sys_linux_arm64.s | |
parent | 70418eb819eb1d02c2c56a13159d95baab85d3a8 (diff) | |
download | go-cc0a04d351c69a99f65342ad5822f2bba8b247d0.tar.gz go-cc0a04d351c69a99f65342ad5822f2bba8b247d0.zip |
runtime: fix errno sign for some mmap and mincore cases
The caller of mmap expects it to return a positive errno value, but the
linux-arm64 and nacl-386 system calls returned a negative errno value.
Correct them to negate the errno value.
The caller of mincore expects it to return a negative errno value (yes,
this is inconsistent), but the linux-mips64x and linux-ppc64x system
call returned a positive errno value. Correct them to negate the errno
value.
Add a test that mmap returns errno with the correct sign. Brad added a
test for mincore's errno value in https://golang.org/cl/19457.
Fixes #14297.
Change-Id: I2b93f32e679bd1eae1c9aef9ae7bcf0ba39521b5
Reviewed-on: https://go-review.googlesource.com/19455
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Minux Ma <minux@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/runtime/sys_linux_arm64.s')
-rw-r--r-- | src/runtime/sys_linux_arm64.s | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/runtime/sys_linux_arm64.s b/src/runtime/sys_linux_arm64.s index ca0e07aaa4..94c101a3d4 100644 --- a/src/runtime/sys_linux_arm64.s +++ b/src/runtime/sys_linux_arm64.s @@ -269,6 +269,9 @@ TEXT runtime·mmap(SB),NOSPLIT,$-8 MOVD $SYS_mmap, R8 SVC + CMN $4095, R0 + BCC 2(PC) + NEG R0,R0 MOVD R0, ret+32(FP) RET |