提交 8030c36d 编写于 作者: H H. Peter Anvin

x86, atomic: atomic64_read() take a const pointer

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: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
Link: http://lkml.kernel.org/r/20120109165859.1879abda.akpm@linux-foundation.org
上级 da517a08
...@@ -82,7 +82,7 @@ static inline void atomic64_set(atomic64_t *v, long long i) ...@@ -82,7 +82,7 @@ static inline void atomic64_set(atomic64_t *v, long long i)
* *
* Atomically reads the value of @v and returns it. * 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; long long r;
asm volatile(ATOMIC64_ALTERNATIVE(read) asm volatile(ATOMIC64_ALTERNATIVE(read)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册