svn commit: r289373 - head/sys/arm64/arm64
Ed Schouten
ed at FreeBSD.org
Thu Oct 15 17:50:29 UTC 2015
Author: ed
Date: Thu Oct 15 17:50:28 2015
New Revision: 289373
URL: https://svnweb.freebsd.org/changeset/base/289373
Log:
Properly set the return value for casueword to 0 upon success.
While trying to get multithreading working for CloudABI on aarch64, I
noticed that compare-and-exchange operations in kernelspace would always
fail. It turns out that we don't properly set the return value to 0 when
the compare and exchange succeeds.
Approved by: andrew
Differential Revision: https://reviews.freebsd.org/D3899
Modified:
head/sys/arm64/arm64/support.S
Modified: head/sys/arm64/arm64/support.S
==============================================================================
--- head/sys/arm64/arm64/support.S Thu Oct 15 17:40:39 2015 (r289372)
+++ head/sys/arm64/arm64/support.S Thu Oct 15 17:50:28 2015 (r289373)
@@ -59,6 +59,7 @@ ENTRY(casueword32)
ldrb w0, [x0] /* Try loading the data */
2: SET_FAULT_HANDLER(xzr, x5) /* Reset the fault handler */
str w4, [x2] /* Store the read data */
+ mov x0, #0 /* Success */
ret /* Return */
END(casueword32)
@@ -76,6 +77,7 @@ ENTRY(casueword)
ldrb w0, [x0] /* Try loading the data */
2: SET_FAULT_HANDLER(xzr, x5) /* Reset the fault handler */
str x4, [x2] /* Store the read data */
+ mov x0, #0 /* Success */
ret /* Return */
END(casueword)
More information about the svn-src-all
mailing list