aboutsummaryrefslogtreecommitdiffstats
path: root/xen
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-01-24 12:47:56 +0000
committerIan Campbell <ian.campbell@citrix.com>2013-01-24 12:47:56 +0000
commit553fd4753c3bcf25dd3824a75d459746f3380ef6 (patch)
treee736305c9a652653ecaa4f148760f41b639943cc /xen
parenta14447dbcf171cf642bed4bf08db80f28955297e (diff)
downloadxen-553fd4753c3bcf25dd3824a75d459746f3380ef6.tar.gz
xen-553fd4753c3bcf25dd3824a75d459746f3380ef6.tar.bz2
xen-553fd4753c3bcf25dd3824a75d459746f3380ef6.zip
xen: Simplify the space of spaces supported by XENMEM_add_to_physmap(_range)
XENMAPSPACE_gmfn_foreign is not supported by XENMEM_add_to_physmap. Although in theory XENMEM_add_to_physmap_range could support XENMAPSPACE_gmfn_range this is no different to XENMAPSPACE_gmfn in the context of the ranged hypercall so disallow it to avoid any confusion. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Keir Fraser <keir@xen.org> Committed-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'xen')
-rw-r--r--xen/arch/arm/mm.c6
-rw-r--r--xen/include/public/memory.h6
2 files changed, 9 insertions, 3 deletions
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 88615543e2..9c5c33448a 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -680,7 +680,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
if ( copy_from_guest(&xatp, arg, 1) )
return -EFAULT;
- /* This one is only supported by add_to_physmap_range */
+ /* Foreign mapping is only supported by add_to_physmap_range */
if ( xatp.space == XENMAPSPACE_gmfn_foreign )
return -EINVAL;
@@ -711,6 +711,10 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
if ( copy_from_guest(&xatpr, arg, 1) )
return -EFAULT;
+ /* This mapspace is redundant for this hypercall */
+ if ( xatpr.space == XENMAPSPACE_gmfn_range )
+ return -EINVAL;
+
rc = rcu_lock_target_domain_by_id(xatpr.domid, &d);
if ( rc != 0 )
return rc;
diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
index 62acabd021..a248c07be4 100644
--- a/xen/include/public/memory.h
+++ b/xen/include/public/memory.h
@@ -203,8 +203,10 @@ DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
#define XENMAPSPACE_shared_info 0 /* shared info page */
#define XENMAPSPACE_grant_table 1 /* grant table page */
#define XENMAPSPACE_gmfn 2 /* GMFN */
-#define XENMAPSPACE_gmfn_range 3 /* GMFN range */
-#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom */
+#define XENMAPSPACE_gmfn_range 3 /* GMFN range, XENMEM_add_to_physmap only. */
+#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom,
+ * XENMEM_add_to_physmap_range only.
+ */
/* ` } */
/*