diff options
| author | Joel Sing <joel@sing.id.au> | 2020-01-07 04:31:23 +1100 |
|---|---|---|
| committer | Joel Sing <joel@sing.id.au> | 2020-01-07 02:56:05 +0000 |
| commit | edf3ec987ff51584c3bfdaeef7d0a24646d0fb4b (patch) | |
| tree | a569c409b89207d0f49f72e9246b846c623cfe8a /src | |
| parent | f266cce6763aeb1b9200dcf193826dcfba5127b7 (diff) | |
| download | go-edf3ec987ff51584c3bfdaeef7d0a24646d0fb4b.tar.xz | |
runtime: correct setNonblock on linux/arm64
The current code uses EOR (exclusive OR), which will result in the O_NONBLOCK
flag being toggled rather than being set. Other implementations use OR, hence
this is likely a bug.
Change-Id: I5dafa9c572452070bd37789c8a731ad6d04a86cd
Reviewed-on: https://go-review.googlesource.com/c/go/+/212766
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src')
| -rw-r--r-- | src/runtime/sys_linux_arm64.s | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/runtime/sys_linux_arm64.s b/src/runtime/sys_linux_arm64.s index 8a0f06f206..8c2a249c9f 100644 --- a/src/runtime/sys_linux_arm64.s +++ b/src/runtime/sys_linux_arm64.s @@ -688,7 +688,7 @@ TEXT runtimeĀ·setNonblock(SB),NOSPLIT|NOFRAME,$0-4 MOVD $SYS_fcntl, R8 SVC MOVD $0x800, R2 // O_NONBLOCK - EOR R0, R2 + ORR R0, R2 MOVW fd+0(FP), R0 // fd MOVD $4, R1 // F_SETFL MOVD $SYS_fcntl, R8 |
