diff options
| -rw-r--r-- | arch/x86/xen/mmu.c | 15 | ||||
| -rw-r--r-- | drivers/xen/privcmd.c | 5 | ||||
| -rw-r--r-- | include/xen/xen-ops.h | 5 | 
3 files changed, 21 insertions, 4 deletions
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index 6226c99729b..0f6386a5b43 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -2479,7 +2479,9 @@ static int remap_area_mfn_pte_fn(pte_t *ptep, pgtable_t token,  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,  			       unsigned long addr,  			       unsigned long mfn, int nr, -			       pgprot_t prot, unsigned domid) +			       pgprot_t prot, unsigned domid, +			       struct page **pages) +  {  	struct remap_data rmd;  	struct mmu_update mmu_update[REMAP_BATCH_SIZE]; @@ -2523,3 +2525,14 @@ out:  	return err;  }  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range); + +/* Returns: 0 success */ +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma, +			       int numpgs, struct page **pages) +{ +	if (!pages || !xen_feature(XENFEAT_auto_translated_physmap)) +		return 0; + +	return -EINVAL; +} +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range); diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c index 8adb9cc267f..b612267a8cb 100644 --- a/drivers/xen/privcmd.c +++ b/drivers/xen/privcmd.c @@ -178,7 +178,7 @@ static int mmap_mfn_range(void *data, void *state)  					msg->va & PAGE_MASK,  					msg->mfn, msg->npages,  					vma->vm_page_prot, -					st->domain); +					st->domain, NULL);  	if (rc < 0)  		return rc; @@ -267,7 +267,8 @@ static int mmap_batch_fn(void *data, void *state)  	int ret;  	ret = xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1, -					 st->vma->vm_page_prot, st->domain); +					 st->vma->vm_page_prot, st->domain, +					 NULL);  	/* Store error code for second pass. */  	*(st->err++) = ret; diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h index 6a198e46ab6..990b43e441e 100644 --- a/include/xen/xen-ops.h +++ b/include/xen/xen-ops.h @@ -27,6 +27,9 @@ struct vm_area_struct;  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,  			       unsigned long addr,  			       unsigned long mfn, int nr, -			       pgprot_t prot, unsigned domid); +			       pgprot_t prot, unsigned domid, +			       struct page **pages); +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma, +			       int numpgs, struct page **pages);  #endif /* INCLUDE_XEN_OPS_H */  |