aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-11-30 17:07:59 -0500
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-11-30 17:07:59 -0500
commit6a7ed405114b2a53ccd99631b0636aaeabf71b3e (patch)
treef8bb0dcddc66c59843433e2283f6bea57cc8ce24 /arch/x86/xen
parenta7be94ac8d69c037d08f0fd94b45a593f1d45176 (diff)
parentf832da068b0aadb15f747f6427b6bf945f525ba4 (diff)
Merge branch 'arm-privcmd-for-3.8' of git://xenbits.xen.org/people/ianc/linux into stable/for-linus-3.8
* 'arm-privcmd-for-3.8' of git://xenbits.xen.org/people/ianc/linux: xen: arm: implement remap interfaces needed for privcmd mappings. xen: correctly use xen_pfn_t in remap_domain_mfn_range. xen: arm: enable balloon driver xen: balloon: allow PVMMU interfaces to be compiled out xen: privcmd: support autotranslated physmap guests. xen: add pages parameter to xen_remap_domain_mfn_range Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'arch/x86/xen')
-rw-r--r--arch/x86/xen/Kconfig1
-rw-r--r--arch/x86/xen/mmu.c17
2 files changed, 16 insertions, 2 deletions
diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index fdce49c7aff6..c31ee77e1ec1 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -6,6 +6,7 @@ config XEN
6 bool "Xen guest support" 6 bool "Xen guest support"
7 select PARAVIRT 7 select PARAVIRT
8 select PARAVIRT_CLOCK 8 select PARAVIRT_CLOCK
9 select XEN_HAVE_PVMMU
9 depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS) 10 depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
10 depends on X86_CMPXCHG && X86_TSC 11 depends on X86_CMPXCHG && X86_TSC
11 help 12 help
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 6226c99729b9..fd8393f55069 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -2478,8 +2478,10 @@ static int remap_area_mfn_pte_fn(pte_t *ptep, pgtable_t token,
2478 2478
2479int xen_remap_domain_mfn_range(struct vm_area_struct *vma, 2479int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
2480 unsigned long addr, 2480 unsigned long addr,
2481 unsigned long mfn, int nr, 2481 xen_pfn_t mfn, int nr,
2482 pgprot_t prot, unsigned domid) 2482 pgprot_t prot, unsigned domid,
2483 struct page **pages)
2484
2483{ 2485{
2484 struct remap_data rmd; 2486 struct remap_data rmd;
2485 struct mmu_update mmu_update[REMAP_BATCH_SIZE]; 2487 struct mmu_update mmu_update[REMAP_BATCH_SIZE];
@@ -2523,3 +2525,14 @@ out:
2523 return err; 2525 return err;
2524} 2526}
2525EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range); 2527EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
2528
2529/* Returns: 0 success */
2530int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
2531 int numpgs, struct page **pages)
2532{
2533 if (!pages || !xen_feature(XENFEAT_auto_translated_physmap))
2534 return 0;
2535
2536 return -EINVAL;
2537}
2538EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);