diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-01-24 12:47:56 +0000 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-01-24 12:47:56 +0000 |
commit | 553fd4753c3bcf25dd3824a75d459746f3380ef6 (patch) | |
tree | e736305c9a652653ecaa4f148760f41b639943cc | |
parent | a14447dbcf171cf642bed4bf08db80f28955297e (diff) | |
download | xen-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>
-rw-r--r-- | xen/arch/arm/mm.c | 6 | ||||
-rw-r--r-- | xen/include/public/memory.h | 6 |
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. + */ /* ` } */ /* |