diff options
| author | Andi Kleen <ak@linux.intel.com> | 2013-08-05 15:02:46 -0700 | 
|---|---|---|
| committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-08-06 14:20:56 -0700 | 
| commit | 9a55fdbe941e5cfb7a5c438db890a58dad82ef8e (patch) | |
| tree | 273b7ee7e9c619d7d58ecdd018cabe37994413ce | |
| parent | 54c2f3fdb941204cad136024c7b854b7ad112ab6 (diff) | |
x86, asmlinkage, paravirt: Add __visible/asmlinkage to xen paravirt ops
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Link: http://lkml.kernel.org/r/1375740170-7446-13-git-send-email-andi@firstfloor.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| -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;  /* Simple instruction patching code. */  #define DEF_NATIVE(ops, name, code) 					\ -	extern const char start_##ops##_##name[], end_##ops##_##name[];	\ +	extern const char start_##ops##_##name[] __visible,		\ +			  end_##ops##_##name[] __visible;		\  	asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":")  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 = {  	.steal_clock = native_steal_clock,  }; -struct pv_irq_ops pv_irq_ops = { +__visible struct pv_irq_ops pv_irq_ops = {  	.save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),  	.restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),  	.irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable), @@ -336,7 +336,7 @@ struct pv_irq_ops pv_irq_ops = {  #endif  }; -struct pv_cpu_ops pv_cpu_ops = { +__visible struct pv_cpu_ops pv_cpu_ops = {  	.cpuid = native_cpuid,  	.get_debugreg = native_get_debugreg,  	.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)  /* Declare an asm function, along with symbols needed to make it     inlineable */  #define DECL_ASM(ret, name, ...)		\ -	ret name(__VA_ARGS__);			\ -	extern char name##_end[];		\ -	extern char name##_reloc[]		\ +	asmlinkage ret name(__VA_ARGS__);	\ +	extern char name##_end[] __visible;	\ +	extern char name##_reloc[] __visible  DECL_ASM(void, xen_irq_enable_direct, void);  DECL_ASM(void, xen_irq_disable_direct, void); @@ -115,11 +115,11 @@ DECL_ASM(unsigned long, xen_save_fl_direct, void);  DECL_ASM(void, xen_restore_fl_direct, unsigned long);  /* These are not functions, and cannot be called normally */ -void xen_iret(void); -void xen_sysexit(void); -void xen_sysret32(void); -void xen_sysret64(void); -void xen_adjust_exception_frame(void); +asmlinkage void xen_iret(void); +asmlinkage void xen_sysexit(void); +asmlinkage void xen_sysret32(void); +asmlinkage void xen_sysret64(void); +asmlinkage void xen_adjust_exception_frame(void);  extern int xen_panic_handler_init(void); | 
