x86, atomic: atomic64_read() take a const pointer
authorH. Peter Anvin <hpa@zytor.com>
Tue, 10 Jan 2012 03:33:24 +0000 (19:33 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 10 Jan 2012 03:33:24 +0000 (19:33 -0800)
atomic64_read() doesn't actually write anything (as far as the C
environment is concerned... the CPU does actually write but that's an
implementation quirk), so it should take a const pointer.

This does NOT mean that it is safe to use atomic64_read() on an object
in readonly storage (it will trap!)

Reported-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Link: http://lkml.kernel.org/r/20120109165859.1879abda.akpm@linux-foundation.org
arch/x86/include/asm/atomic64_32.h

index 24098aa..fa13f0e 100644 (file)
@@ -82,7 +82,7 @@ static inline void atomic64_set(atomic64_t *v, long long i)
  *
  * Atomically reads the value of @v and returns it.
  */
-static inline long long atomic64_read(atomic64_t *v)
+static inline long long atomic64_read(const atomic64_t *v)
 {
        long long r;
        asm volatile(ATOMIC64_ALTERNATIVE(read)