summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2006-02-08 21:19:37 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-02-08 21:19:37 +0000
commit5964eae835c3b98c69d338950651f7f414f96477 (patch)
treec4ea7c8a3447dc7f41d6cce5b6dc96000e7dc159 /arch
parent49bca4c2815feafd5f999bf43baf87e0dd8d1d08 (diff)
downloadop-kernel-dev-5964eae835c3b98c69d338950651f7f414f96477.zip
op-kernel-dev-5964eae835c3b98c69d338950651f7f414f96477.tar.gz
[ARM] 3310/1: add a comment about the possible __kuser_cmpxchg transient false
negative Patch from Nicolas Pitre The pre ARMv5 implementation can be aborted if an exception occurs in the middle of it. Because of that, the ARMv6 implementation doesn't re-attempt the operation on a failed strex either. Let's make this transient nature of such a false positive more explicit in the definition. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/entry-armv.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index f248bbf..964cd71 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -709,7 +709,12 @@ __kuser_memory_barrier: @ 0xffff0fa0
* The C flag is also set if *ptr was changed to allow for assembly
* optimization in the calling code.
*
- * Note: this routine already includes memory barriers as needed.
+ * Notes:
+ *
+ * - This routine already includes memory barriers as needed.
+ *
+ * - A failure might be transient, i.e. it is possible, although unlikely,
+ * that "failure" be returned even if *ptr == oldval.
*
* For example, a user space atomic_add implementation could look like this:
*
OpenPOWER on IntegriCloud