aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/percpu.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-10-29 09:34:15 -0400
committerTejun Heo <tj@kernel.org>2009-10-29 09:34:15 -0400
commit545695fb41da117928ab946067a42d9e15fd009d (patch)
tree1ea32c45a6f6efb03a88f99278f065054a5de3e2 /include/linux/percpu.h
parente0fdb0e050eae331046385643618f12452aa7e73 (diff)
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 2c0d31a3f6b6..42878f0cd0e2 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -237,6 +237,7 @@ extern void __bad_size_call_parameter(void);
237 237
238#define __pcpu_size_call_return(stem, variable) \ 238#define __pcpu_size_call_return(stem, variable) \
239({ typeof(variable) pscr_ret__; \ 239({ typeof(variable) pscr_ret__; \
240 __verify_pcpu_ptr(&(variable)); \
240 switch(sizeof(variable)) { \ 241 switch(sizeof(variable)) { \
241 case 1: pscr_ret__ = stem##1(variable);break; \ 242 case 1: pscr_ret__ = stem##1(variable);break; \
242 case 2: pscr_ret__ = stem##2(variable);break; \ 243 case 2: pscr_ret__ = stem##2(variable);break; \
@@ -250,6 +251,7 @@ extern void __bad_size_call_parameter(void);
250 251
251#define __pcpu_size_call(stem, variable, ...) \ 252#define __pcpu_size_call(stem, variable, ...) \
252do { \ 253do { \
254 __verify_pcpu_ptr(&(variable)); \
253 switch(sizeof(variable)) { \ 255 switch(sizeof(variable)) { \
254 case 1: stem##1(variable, __VA_ARGS__);break; \ 256 case 1: stem##1(variable, __VA_ARGS__);break; \
255 case 2: stem##2(variable, __VA_ARGS__);break; \ 257 case 2: stem##2(variable, __VA_ARGS__);break; \