aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-generic/percpu.h
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@gmail.com>2010-08-06 14:26:23 -0400
committerTejun Heo <tj@kernel.org>2010-08-07 08:20:53 -0400
commit18cb2aef91b37dbce2bec2f39bb1dddd0e9dd838 (patch)
treef0290a76bc8bb08f47daa888dbd1296f34476268 /include/asm-generic/percpu.h
parent4a386c3e177ca2fbc70c9283d0b46537844763a0 (diff)
percpu: handle __percpu notations in UP accessors
UP accessors didn't take care of __percpu notations leading to a lot of spurious sparse warnings on UP configurations. Fix it. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/asm-generic/percpu.h')
-rw-r--r--include/asm-generic/percpu.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
index b5043a9890d8..08923b684768 100644
--- a/include/asm-generic/percpu.h
+++ b/include/asm-generic/percpu.h
@@ -70,11 +70,16 @@ extern void setup_per_cpu_areas(void);
70 70
71#else /* ! SMP */ 71#else /* ! SMP */
72 72
73#define per_cpu(var, cpu) (*((void)(cpu), &(var))) 73#define VERIFY_PERCPU_PTR(__p) ({ \
74#define __get_cpu_var(var) (var) 74 __verify_pcpu_ptr((__p)); \
75#define __raw_get_cpu_var(var) (var) 75 (typeof(*(__p)) __kernel __force *)(__p); \
76#define this_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) 76})
77#define __this_cpu_ptr(ptr) this_cpu_ptr(ptr) 77
78#define per_cpu(var, cpu) (*((void)(cpu), VERIFY_PERCPU_PTR(&(var))))
79#define __get_cpu_var(var) (*VERIFY_PERCPU_PTR(&(var)))
80#define __raw_get_cpu_var(var) (*VERIFY_PERCPU_PTR(&(var)))
81#define this_cpu_ptr(ptr) per_cpu_ptr(ptr, 0)
82#define __this_cpu_ptr(ptr) this_cpu_ptr(ptr)
78 83
79#endif /* SMP */ 84#endif /* SMP */
80 85