From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH] xen: Simplify the space of spaces supported by XENMEM_add_to_physmap(_range) Date: Tue, 22 Jan 2013 11:39:13 +0000 Message-ID: <1358854753-11633-1-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: tim@xen.org, keir@xen.org, stefano.stabellini@citrix.com, Ian Campbell , konrad.wilk@oracle.com List-Id: xen-devel@lists.xenproject.org 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 --- xen/arch/arm/mm.c | 6 +++++- 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 eb5213e..faa9742 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -648,7 +648,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; @@ -679,6 +679,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 62acabd..a248c07 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. + */ /* ` } */ /* -- 1.7.9.1