x86, percpu: Add 'percpu_read_stable()' interface for cacheable accesses
commited8d9adf357ec331603fa1049510399812cea7e5
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 3 Aug 2009 05:08:48 +0000 (3 14:08 +0900)
committerTejun Heo <tj@kernel.org>
Mon, 3 Aug 2009 16:28:52 +0000 (4 01:28 +0900)
treecc6eae948bf4652b9d87aee796ae78cc6287ac36
parenta33a052f19a21d727847391c8c1aff3fb221c472
x86, percpu: Add 'percpu_read_stable()' interface for cacheable accesses

This is very useful for some common things like 'get_current()' and
'get_thread_info()', which can be used multiple times in a function, and
where the result is cacheable.

tj: Added the magical undocumented "P" modifier to UP __percpu_arg()
    to force gcc to dereference the pointer value passed in via the
    "p" input constraint.  Without this, percpu_read_stable() returns
    the address of the percpu variable.  Also added comment explaining
    the difference between percpu_read() and percpu_read_stable().

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/include/asm/current.h
arch/x86/include/asm/percpu.h
arch/x86/include/asm/thread_info.h