diff options
Diffstat (limited to 'arch/x86/kernel/paravirt.c')
| -rw-r--r-- | arch/x86/kernel/paravirt.c | 30 | 
1 files changed, 7 insertions, 23 deletions
| diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index 42e182868873..ac10b46c5832 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c @@ -64,11 +64,11 @@ static unsigned paravirt_patch_call(void *insn_buff, const void *target,  }  #ifdef CONFIG_PARAVIRT_XXL -/* identity function, which can be inlined */ -u64 notrace _paravirt_ident_64(u64 x) -{ -	return x; -} +DEFINE_PARAVIRT_ASM(_paravirt_ident_64, "mov %rdi, %rax", .text); +DEFINE_PARAVIRT_ASM(pv_native_save_fl, "pushf; pop %rax", .noinstr.text); +DEFINE_PARAVIRT_ASM(pv_native_irq_disable, "cli", .noinstr.text); +DEFINE_PARAVIRT_ASM(pv_native_irq_enable, "sti", .noinstr.text); +DEFINE_PARAVIRT_ASM(pv_native_read_cr2, "mov %cr2, %rax", .noinstr.text);  #endif  DEFINE_STATIC_KEY_TRUE(virt_spin_lock_key); @@ -197,11 +197,6 @@ void paravirt_end_context_switch(struct task_struct *next)  		arch_enter_lazy_mmu_mode();  } -static noinstr unsigned long pv_native_read_cr2(void) -{ -	return native_read_cr2(); -} -  static noinstr void pv_native_write_cr2(unsigned long val)  {  	native_write_cr2(val); @@ -222,16 +217,6 @@ noinstr void pv_native_wbinvd(void)  	native_wbinvd();  } -static noinstr void pv_native_irq_enable(void) -{ -	native_irq_enable(); -} - -static noinstr void pv_native_irq_disable(void) -{ -	native_irq_disable(); -} -  static noinstr void pv_native_safe_halt(void)  {  	native_safe_halt(); @@ -298,7 +283,7 @@ struct paravirt_patch_template pv_ops = {  	.cpu.end_context_switch		= paravirt_nop,  	/* Irq ops. */ -	.irq.save_fl		= __PV_IS_CALLEE_SAVE(native_save_fl), +	.irq.save_fl		= __PV_IS_CALLEE_SAVE(pv_native_save_fl),  	.irq.irq_disable	= __PV_IS_CALLEE_SAVE(pv_native_irq_disable),  	.irq.irq_enable		= __PV_IS_CALLEE_SAVE(pv_native_irq_enable),  	.irq.safe_halt		= pv_native_safe_halt, @@ -363,8 +348,7 @@ struct paravirt_patch_template pv_ops = {  	.mmu.make_pte		= PTE_IDENT,  	.mmu.make_pgd		= PTE_IDENT, -	.mmu.dup_mmap		= paravirt_nop, -	.mmu.activate_mm	= paravirt_nop, +	.mmu.enter_mmap		= paravirt_nop,  	.mmu.lazy_mode = {  		.enter		= paravirt_nop, | 
