diff options
-rw-r--r-- | arch/x86/include/asm/paravirt_types.h | 3 | ||||
-rw-r--r-- | arch/x86/kernel/paravirt.c | 4 | ||||
-rw-r--r-- | arch/x86/xen/xen-ops.h | 16 |
3 files changed, 12 insertions, 11 deletions
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h index 0db1fcac668c..0617ff241e8f 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h | |||
@@ -387,7 +387,8 @@ extern struct pv_lock_ops pv_lock_ops; | |||
387 | 387 | ||
388 | /* Simple instruction patching code. */ | 388 | /* Simple instruction patching code. */ |
389 | #define DEF_NATIVE(ops, name, code) \ | 389 | #define DEF_NATIVE(ops, name, code) \ |
390 | extern const char start_##ops##_##name[], end_##ops##_##name[]; \ | 390 | extern const char start_##ops##_##name[] __visible, \ |
391 | end_##ops##_##name[] __visible; \ | ||
391 | asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":") | 392 | asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":") |
392 | 393 | ||
393 | unsigned paravirt_patch_nop(void); | 394 | unsigned paravirt_patch_nop(void); |
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index cd6de64cc480..884aa4053313 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c | |||
@@ -324,7 +324,7 @@ struct pv_time_ops pv_time_ops = { | |||
324 | .steal_clock = native_steal_clock, | 324 | .steal_clock = native_steal_clock, |
325 | }; | 325 | }; |
326 | 326 | ||
327 | struct pv_irq_ops pv_irq_ops = { | 327 | __visible struct pv_irq_ops pv_irq_ops = { |
328 | .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl), | 328 | .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl), |
329 | .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl), | 329 | .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl), |
330 | .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable), | 330 | .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable), |
@@ -336,7 +336,7 @@ struct pv_irq_ops pv_irq_ops = { | |||
336 | #endif | 336 | #endif |
337 | }; | 337 | }; |
338 | 338 | ||
339 | struct pv_cpu_ops pv_cpu_ops = { | 339 | __visible struct pv_cpu_ops pv_cpu_ops = { |
340 | .cpuid = native_cpuid, | 340 | .cpuid = native_cpuid, |
341 | .get_debugreg = native_get_debugreg, | 341 | .get_debugreg = native_get_debugreg, |
342 | .set_debugreg = native_set_debugreg, | 342 | .set_debugreg = native_set_debugreg, |
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h index 86782c5d7e2a..d380213cda25 100644 --- a/arch/x86/xen/xen-ops.h +++ b/arch/x86/xen/xen-ops.h | |||
@@ -105,9 +105,9 @@ static inline void __init xen_init_apic(void) | |||
105 | /* Declare an asm function, along with symbols needed to make it | 105 | /* Declare an asm function, along with symbols needed to make it |
106 | inlineable */ | 106 | inlineable */ |
107 | #define DECL_ASM(ret, name, ...) \ | 107 | #define DECL_ASM(ret, name, ...) \ |
108 | ret name(__VA_ARGS__); \ | 108 | asmlinkage ret name(__VA_ARGS__); \ |
109 | extern char name##_end[]; \ | 109 | extern char name##_end[] __visible; \ |
110 | extern char name##_reloc[] \ | 110 | extern char name##_reloc[] __visible |
111 | 111 | ||
112 | DECL_ASM(void, xen_irq_enable_direct, void); | 112 | DECL_ASM(void, xen_irq_enable_direct, void); |
113 | DECL_ASM(void, xen_irq_disable_direct, void); | 113 | DECL_ASM(void, xen_irq_disable_direct, void); |
@@ -115,11 +115,11 @@ DECL_ASM(unsigned long, xen_save_fl_direct, void); | |||
115 | DECL_ASM(void, xen_restore_fl_direct, unsigned long); | 115 | DECL_ASM(void, xen_restore_fl_direct, unsigned long); |
116 | 116 | ||
117 | /* These are not functions, and cannot be called normally */ | 117 | /* These are not functions, and cannot be called normally */ |
118 | void xen_iret(void); | 118 | asmlinkage void xen_iret(void); |
119 | void xen_sysexit(void); | 119 | asmlinkage void xen_sysexit(void); |
120 | void xen_sysret32(void); | 120 | asmlinkage void xen_sysret32(void); |
121 | void xen_sysret64(void); | 121 | asmlinkage void xen_sysret64(void); |
122 | void xen_adjust_exception_frame(void); | 122 | asmlinkage void xen_adjust_exception_frame(void); |
123 | 123 | ||
124 | extern int xen_panic_handler_init(void); | 124 | extern int xen_panic_handler_init(void); |
125 | 125 | ||