|
@@ -21,9 +21,15 @@
|
|
__attribute__((__section__(".data.percpu"))) __typeof__(type) per_cpu__##name
|
|
__attribute__((__section__(".data.percpu"))) __typeof__(type) per_cpu__##name
|
|
|
|
|
|
/* var is in discarded region: offset to particular copy we want */
|
|
/* var is in discarded region: offset to particular copy we want */
|
|
-#define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu)))
|
|
|
|
-#define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()))
|
|
|
|
-#define __raw_get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()))
|
|
|
|
|
|
+#define per_cpu(var, cpu) (*({ \
|
|
|
|
+ extern int simple_indentifier_##var(void); \
|
|
|
|
+ RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu)); }))
|
|
|
|
+#define __get_cpu_var(var) (*({ \
|
|
|
|
+ extern int simple_indentifier_##var(void); \
|
|
|
|
+ RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()); }))
|
|
|
|
+#define __raw_get_cpu_var(var) (*({ \
|
|
|
|
+ extern int simple_indentifier_##var(void); \
|
|
|
|
+ RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()); }))
|
|
|
|
|
|
/* A macro to avoid #include hell... */
|
|
/* A macro to avoid #include hell... */
|
|
#define percpu_modcopy(pcpudst, src, size) \
|
|
#define percpu_modcopy(pcpudst, src, size) \
|