diff options
Diffstat (limited to 'arch/x86/xen')
| -rw-r--r-- | arch/x86/xen/enlighten.c | 2 | ||||
| -rw-r--r-- | arch/x86/xen/mmu.c | 21 | 
2 files changed, 20 insertions, 3 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index e3497f240ea..586d83812b6 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -81,8 +81,6 @@  #include "smp.h"  #include "multicalls.h" -#include <xen/events.h> -  EXPORT_SYMBOL_GPL(hypercall_page);  DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu); diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index 6226c99729b..dcf5f2dd91e 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -1288,6 +1288,25 @@ unsigned long xen_read_cr2_direct(void)  	return this_cpu_read(xen_vcpu_info.arch.cr2);  } +void xen_flush_tlb_all(void) +{ +	struct mmuext_op *op; +	struct multicall_space mcs; + +	trace_xen_mmu_flush_tlb_all(0); + +	preempt_disable(); + +	mcs = xen_mc_entry(sizeof(*op)); + +	op = mcs.args; +	op->cmd = MMUEXT_TLB_FLUSH_ALL; +	MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF); + +	xen_mc_issue(PARAVIRT_LAZY_MMU); + +	preempt_enable(); +}  static void xen_flush_tlb(void)  {  	struct mmuext_op *op; @@ -2518,7 +2537,7 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,  	err = 0;  out: -	flush_tlb_all(); +	xen_flush_tlb_all();  	return err;  }  |