diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-11-06 10:03:29 +0100 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-11-06 10:03:29 +0100 |
commit | 70324494b6f283311c5339fb1795fdec2d8850d9 (patch) | |
tree | 5a318c2b60ba6e7861d630310d1930f62b8893ce /arch/x86/xen/mmu.c | |
parent | Merge branch 'spi-spidev' into spi-next (diff) | |
parent | spi: omap2-mcspi: Reorder the wait_for_completion for tx (diff) | |
download | linux-70324494b6f283311c5339fb1795fdec2d8850d9.tar.xz linux-70324494b6f283311c5339fb1795fdec2d8850d9.zip |
Merge branch 'spi-linus' into spi-next
Diffstat (limited to 'arch/x86/xen/mmu.c')
-rw-r--r-- | arch/x86/xen/mmu.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index 6226c99729b9..dcf5f2dd91ec 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; } |