aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/paravirt_types.h3
-rw-r--r--arch/x86/kernel/paravirt.c4
-rw-r--r--arch/x86/xen/xen-ops.h16
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
393unsigned paravirt_patch_nop(void); 394unsigned 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
327struct 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
339struct 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
112DECL_ASM(void, xen_irq_enable_direct, void); 112DECL_ASM(void, xen_irq_enable_direct, void);
113DECL_ASM(void, xen_irq_disable_direct, void); 113DECL_ASM(void, xen_irq_disable_direct, void);
@@ -115,11 +115,11 @@ DECL_ASM(unsigned long, xen_save_fl_direct, void);
115DECL_ASM(void, xen_restore_fl_direct, unsigned long); 115DECL_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 */
118void xen_iret(void); 118asmlinkage void xen_iret(void);
119void xen_sysexit(void); 119asmlinkage void xen_sysexit(void);
120void xen_sysret32(void); 120asmlinkage void xen_sysret32(void);
121void xen_sysret64(void); 121asmlinkage void xen_sysret64(void);
122void xen_adjust_exception_frame(void); 122asmlinkage void xen_adjust_exception_frame(void);
123 123
124extern int xen_panic_handler_init(void); 124extern int xen_panic_handler_init(void);
125 125