Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a55fdbe authored by Andi Kleen's avatar Andi Kleen Committed by H. Peter Anvin
Browse files

x86, asmlinkage, paravirt: Add __visible/asmlinkage to xen paravirt ops



Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
Link: http://lkml.kernel.org/r/1375740170-7446-13-git-send-email-andi@firstfloor.org


Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
parent 54c2f3fd
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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);
+2 −2
Original line number Diff line number Diff line
@@ -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,
+8 −8
Original line number Diff line number Diff line
@@ -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);