aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/percpu.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-10-29 22:34:15 +0900
committerTejun Heo <tj@kernel.org>2009-10-29 22:34:15 +0900
commit545695fb41da117928ab946067a42d9e15fd009d (patch)
tree1ea32c45a6f6efb03a88f99278f065054a5de3e2 /include/linux/percpu.h
parente0fdb0e050eae331046385643618f12452aa7e73 (diff)
downloadkernel_samsung_smdk4412-545695fb41da117928ab946067a42d9e15fd009d.zip
kernel_samsung_smdk4412-545695fb41da117928ab946067a42d9e15fd009d.tar.gz
kernel_samsung_smdk4412-545695fb41da117928ab946067a42d9e15fd009d.tar.bz2
percpu: make accessors check for percpu pointer in sparse
The previous patch made sparse warn about percpu variables being used directly without going through percpu accessors. This patch implements the other half - checking whether non percpu variable is passed into percpu accessors. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/percpu.h')
-rw-r--r--include/linux/percpu.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index 2c0d31a..42878f0 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -237,6 +237,7 @@ extern void __bad_size_call_parameter(void);
#define __pcpu_size_call_return(stem, variable) \
({ typeof(variable) pscr_ret__; \
+ __verify_pcpu_ptr(&(variable)); \
switch(sizeof(variable)) { \
case 1: pscr_ret__ = stem##1(variable);break; \
case 2: pscr_ret__ = stem##2(variable);break; \
@@ -250,6 +251,7 @@ extern void __bad_size_call_parameter(void);
#define __pcpu_size_call(stem, variable, ...) \
do { \
+ __verify_pcpu_ptr(&(variable)); \
switch(sizeof(variable)) { \
case 1: stem##1(variable, __VA_ARGS__);break; \
case 2: stem##2(variable, __VA_ARGS__);break; \