diff options
author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-11-30 17:07:59 -0500 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-11-30 17:07:59 -0500 |
commit | 6a7ed405114b2a53ccd99631b0636aaeabf71b3e (patch) | |
tree | f8bb0dcddc66c59843433e2283f6bea57cc8ce24 /arch/x86/xen | |
parent | a7be94ac8d69c037d08f0fd94b45a593f1d45176 (diff) | |
parent | f832da068b0aadb15f747f6427b6bf945f525ba4 (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/Kconfig | 1 | ||||
-rw-r--r-- | arch/x86/xen/mmu.c | 17 |
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 | ||
2479 | int xen_remap_domain_mfn_range(struct vm_area_struct *vma, | 2479 | int 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 | } |
2525 | EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range); | 2527 | EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range); |
2528 | |||
2529 | /* Returns: 0 success */ | ||
2530 | int 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 | } | ||
2538 | EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range); | ||