diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2009-10-29 14:34:15 +0100 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2009-10-29 14:34:15 +0100 |
commit | e0fdb0e050eae331046385643618f12452aa7e73 (patch) | |
tree | 6156f577879764fd75cf8c46ca7980433de0e59d /include/asm-generic/percpu.h | |
parent | percpu: make access macros universal (diff) | |
download | linux-e0fdb0e050eae331046385643618f12452aa7e73.tar.xz linux-e0fdb0e050eae331046385643618f12452aa7e73.zip |
percpu: add __percpu for sparse.
We have to make __kernel "__attribute__((address_space(0)))" so we can
cast to it.
tj: * put_cpu_var() update.
* Annotations added to dynamic allocator interface.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/asm-generic/percpu.h')
-rw-r--r-- | include/asm-generic/percpu.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h index ca6f0491412b..fded453fd25c 100644 --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -41,7 +41,9 @@ extern unsigned long __per_cpu_offset[NR_CPUS]; * Only S390 provides its own means of moving the pointer. */ #ifndef SHIFT_PERCPU_PTR -#define SHIFT_PERCPU_PTR(__p, __offset) RELOC_HIDE((__p), (__offset)) +/* Weird cast keeps both GCC and sparse happy. */ +#define SHIFT_PERCPU_PTR(__p, __offset) \ + RELOC_HIDE((typeof(*(__p)) __kernel __force *)(__p), (__offset)) #endif /* |