summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2006-02-08 21:19:37 (GMT)
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-02-08 21:19:37 (GMT)
commit5964eae835c3b98c69d338950651f7f414f96477 (patch)
treec4ea7c8a3447dc7f41d6cce5b6dc96000e7dc159 /arch/arm
parent49bca4c2815feafd5f999bf43baf87e0dd8d1d08 (diff)
downloadlinux-fsl-qoriq-5964eae835c3b98c69d338950651f7f414f96477.tar.xz
[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/arm')
-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:
*