aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/xen/page.h1
-rw-r--r--arch/x86/xen/mmu.c10
2 files changed, 9 insertions, 2 deletions
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index bf5f7d32bd08..5e0eb8758919 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -159,6 +159,7 @@ static inline pte_t __pte_ma(pteval_t x)
159 159
160#define pgd_val_ma(x) ((x).pgd) 160#define pgd_val_ma(x) ((x).pgd)
161 161
162void xen_set_domain_pte(pte_t *ptep, pte_t pteval, unsigned domid);
162 163
163xmaddr_t arbitrary_virt_to_machine(void *address); 164xmaddr_t arbitrary_virt_to_machine(void *address);
164unsigned long arbitrary_virt_to_mfn(void *vaddr); 165unsigned long arbitrary_virt_to_mfn(void *vaddr);
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 42086ac406af..1ceb0f2fa0af 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -395,7 +395,7 @@ static bool xen_iomap_pte(pte_t pte)
395 return pte_flags(pte) & _PAGE_IOMAP; 395 return pte_flags(pte) & _PAGE_IOMAP;
396} 396}
397 397
398static void xen_set_iomap_pte(pte_t *ptep, pte_t pteval) 398void xen_set_domain_pte(pte_t *ptep, pte_t pteval, unsigned domid)
399{ 399{
400 struct multicall_space mcs; 400 struct multicall_space mcs;
401 struct mmu_update *u; 401 struct mmu_update *u;
@@ -407,10 +407,16 @@ static void xen_set_iomap_pte(pte_t *ptep, pte_t pteval)
407 u->ptr = arbitrary_virt_to_machine(ptep).maddr; 407 u->ptr = arbitrary_virt_to_machine(ptep).maddr;
408 u->val = pte_val_ma(pteval); 408 u->val = pte_val_ma(pteval);
409 409
410 MULTI_mmu_update(mcs.mc, mcs.args, 1, NULL, DOMID_IO); 410 MULTI_mmu_update(mcs.mc, mcs.args, 1, NULL, domid);
411 411
412 xen_mc_issue(PARAVIRT_LAZY_MMU); 412 xen_mc_issue(PARAVIRT_LAZY_MMU);
413} 413}
414EXPORT_SYMBOL_GPL(xen_set_domain_pte);
415
416static void xen_set_iomap_pte(pte_t *ptep, pte_t pteval)
417{
418 xen_set_domain_pte(ptep, pteval, DOMID_IO);
419}
414 420
415static void xen_extend_mmu_update(const struct mmu_update *update) 421static void xen_extend_mmu_update(const struct mmu_update *update)
416{ 422{