|
@@ -15,18 +15,20 @@
|
|
|
*/
|
|
|
#if defined(__s390x__) && defined(MODULE)
|
|
|
|
|
|
-#define __reloc_hide(var,offset) \
|
|
|
- (*({ unsigned long *__ptr; \
|
|
|
- asm ( "larl %0,per_cpu__"#var"@GOTENT" \
|
|
|
- : "=a" (__ptr) : "X" (per_cpu__##var) ); \
|
|
|
- (typeof(&per_cpu__##var))((*__ptr) + (offset)); }))
|
|
|
+#define __reloc_hide(var,offset) (*({ \
|
|
|
+ extern int simple_indentifier_##var(void); \
|
|
|
+ unsigned long *__ptr; \
|
|
|
+ asm ( "larl %0,per_cpu__"#var"@GOTENT" \
|
|
|
+ : "=a" (__ptr) : "X" (per_cpu__##var) ); \
|
|
|
+ (typeof(&per_cpu__##var))((*__ptr) + (offset)); }))
|
|
|
|
|
|
#else
|
|
|
|
|
|
-#define __reloc_hide(var, offset) \
|
|
|
- (*({ unsigned long __ptr; \
|
|
|
- asm ( "" : "=a" (__ptr) : "0" (&per_cpu__##var) ); \
|
|
|
- (typeof(&per_cpu__##var)) (__ptr + (offset)); }))
|
|
|
+#define __reloc_hide(var, offset) (*({ \
|
|
|
+ extern int simple_indentifier_##var(void); \
|
|
|
+ unsigned long __ptr; \
|
|
|
+ asm ( "" : "=a" (__ptr) : "0" (&per_cpu__##var) ); \
|
|
|
+ (typeof(&per_cpu__##var)) (__ptr + (offset)); }))
|
|
|
|
|
|
#endif
|
|
|
|