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>
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;
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;
#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.
+ */
/* ` } */
/*