xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Stefano Stabellini <stefano.stabellini@citrix.com>,
	Mukesh Rathor <mukesh.rathor@oracle.com>
Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
Subject: [PATCH 14/14] arm: implement foreign mapping using XENMEM_add_to_physmap_range
Date: Thu, 4 Oct 2012 16:11:55 +0100	[thread overview]
Message-ID: <1349363515-26190-14-git-send-email-ian.campbell@citrix.com> (raw)
In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>

This interface is prefered for foreign mappings.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
 arch/arm/xen/enlighten.c       |   14 +++++++++-----
 include/xen/interface/memory.h |   18 ++++++++++++++++++
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index 9956af5..a9946aa 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -51,15 +51,19 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
 			    unsigned int domid)
 {
 	int rc;
-	struct xen_add_to_physmap xatp = {
+	struct xen_add_to_physmap_range xatp = {
 		.domid = DOMID_SELF,
-		.u.foreign_domid = domid,
+		.foreign_domid = domid,
+		.size = 1,
 		.space = XENMAPSPACE_gmfn_foreign,
-		.idx = fgmfn,
-		.gpfn = lpfn,
 	};
+	unsigned long idx = fgmfn;
+	xen_pfn_t gpfn = lpfn;
 
-	rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
+	set_xen_guest_handle(xatp.idxs, &idx);
+	set_xen_guest_handle(xatp.gpfns, &gpfn);
+
+	rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
 	if (rc) {
 		pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
 			rc, lpfn, fgmfn);
diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
index d38bdc1..e5675bc 100644
--- a/include/xen/interface/memory.h
+++ b/include/xen/interface/memory.h
@@ -188,6 +188,24 @@ struct xen_add_to_physmap {
 };
 DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
 
+#define XENMEM_add_to_physmap_range 23
+struct xen_add_to_physmap_range {
+    /* Which domain to change the mapping for. */
+    domid_t domid;
+    uint16_t space; /* => enum phys_map_space */
+
+    /* Number of pages to go through */
+    uint16_t size;
+    domid_t foreign_domid; /* IFF gmfn_foreign */
+
+    /* Indexes into space being mapped. */
+    GUEST_HANDLE(ulong) idxs;
+
+    /* GPFN in domid where the source mapping page should appear. */
+    GUEST_HANDLE(xen_pfn_t) gpfns;
+};
+DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
+
 /*
  * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
  * code on failure. This call only works for auto-translated guests.
-- 
1.7.2.5

  parent reply	other threads:[~2012-10-04 15:11 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-04 15:11 [RFC 00/14] arm: implement ballooning and privcmd foreign mappings based on x86 PVH Ian Campbell
2012-10-04 15:11 ` [PATCH 01/14] Build fixes which I beleive others have already fixed properly elsewhere Ian Campbell
2012-10-04 15:15   ` Konrad Rzeszutek Wilk
2012-10-04 15:11 ` [PATCH 02/14] xenbus: include features header Ian Campbell
2012-10-04 15:11 ` [PATCH 03/14] xen events: xen_callback_vector is x86 specific Ian Campbell
2012-10-05 11:43   ` Stefano Stabellini
2012-10-05 11:47     ` Ian Campbell
2012-10-05 18:40       ` Mukesh Rathor
2012-10-04 15:11 ` [PATCH 04/14] xen: balloon: don't include e820.h Ian Campbell
2012-10-04 15:11 ` [PATCH 05/14] xen: balloon: use correct type for frame_list Ian Campbell
2012-10-05 11:48   ` Stefano Stabellini
2012-10-05 12:32     ` Ian Campbell
2012-10-05 14:02       ` Stefano Stabellini
2012-10-05 14:33         ` Ian Campbell
2012-10-05 14:54           ` Stefano Stabellini
2012-10-05 16:11           ` Ian Campbell
2012-10-05 16:17             ` Ian Campbell
2012-10-09 12:31             ` Stefano Stabellini
2012-10-04 15:11 ` [PATCH 06/14] arm: make p2m operations NOPs Ian Campbell
2012-10-05 11:53   ` Stefano Stabellini
2012-10-04 15:11 ` [PATCH 07/14] xen: balloon: do not update stage 1 pagetable for autotranslated guests Ian Campbell
2012-10-05 12:05   ` Stefano Stabellini
2012-10-05 19:10     ` Mukesh Rathor
2012-10-04 15:11 ` [PATCH 08/14] xen: balloon: allow PVMMU interfaces to be compiled out Ian Campbell
2012-10-05 13:19   ` Stefano Stabellini
2012-10-05 13:33     ` Ian Campbell
2012-10-05 14:04       ` Stefano Stabellini
2012-10-05 14:05         ` Stefano Stabellini
2012-10-05 14:35         ` Ian Campbell
2012-10-04 15:11 ` [PATCH 09/14] xen: arm: enable balloon driver Ian Campbell
2012-10-05 13:18   ` Stefano Stabellini
2012-10-04 15:11 ` [PATCH 10/14] privcmd: refer to autotranslate not PVH in arch interfaces / comments Ian Campbell
2012-10-05 13:37   ` Stefano Stabellini
2012-10-05 13:39     ` Ian Campbell
2012-10-04 15:11 ` [PATCH 11/14] arm: implement remap interfaces needed for privcmd mappings Ian Campbell
2012-10-04 15:24   ` Konrad Rzeszutek Wilk
2012-10-04 15:48     ` Ian Campbell
2012-10-04 15:54       ` Konrad Rzeszutek Wilk
2012-10-05 13:36   ` Stefano Stabellini
2012-10-05 13:42     ` Ian Campbell
2012-10-09  0:59       ` Mukesh Rathor
2012-10-04 15:11 ` [PATCH 12/14] arm: xen: explain the EXPERIMENTAL dependency in the Kconfig help Ian Campbell
2012-10-05 13:21   ` Stefano Stabellini
2012-10-05 13:29     ` Ian Campbell
2012-10-04 15:11 ` [PATCH 13/14] xen: use xen_pft_t in struct xen_remove_from_physmap Ian Campbell
2012-10-05 13:22   ` Stefano Stabellini
2012-10-04 15:11 ` Ian Campbell [this message]
2012-10-05 13:36   ` [PATCH 14/14] arm: implement foreign mapping using XENMEM_add_to_physmap_range Stefano Stabellini
2012-10-05 13:51     ` Ian Campbell
2012-10-04 15:27 ` [RFC 00/14] arm: implement ballooning and privcmd foreign mappings based on x86 PVH Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1349363515-26190-14-git-send-email-ian.campbell@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=mukesh.rathor@oracle.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).