xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com,
	Julien Grall <julien.grall@linaro.org>,
	linux-kernel@vger.kernel.org,
	Julien Grall <julien.grall@citrix.com>,
	David Vrabel <david.vrabel@citrix.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 04/20] xen/grant: Add helper gnttab_page_grant_foreign_access_ref
Date: Thu, 9 Jul 2015 21:42:16 +0100	[thread overview]
Message-ID: <1436474552-31789-5-git-send-email-julien.grall__19607.7381297529$1436474745$gmane$org@citrix.com> (raw)
In-Reply-To: <1436474552-31789-1-git-send-email-julien.grall@citrix.com>

Many PV drivers contain the idiom:

pfn = page_to_mfn(...) /* Or similar */
gnttab_grant_foreign_access_ref

Replace it by a new helper. Note that when Linux is using a different
page granularity than Xen, the helper only gives access to the first 4KB
grant.

This is useful where drivers are allocating a full Linux page for each
grant.

Also include xen/interface/grant_table.h rather than xen/grant_table.h in
asm/page.h for x86 to fix a compilation issue [1]. Only the former is
useful in order to get the structure definition.

[1] Interpendency between asm/page.h and xen/grant_table.h which result
to page_mfn not being defined when necessary.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: David Vrabel <david.vrabel@citrix.com>
---
    Changes in v2:
        - Patch added
---
 arch/x86/include/asm/xen/page.h | 2 +-
 include/xen/grant_table.h       | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index c44a5d5..fb2e037 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -12,7 +12,7 @@
 #include <asm/pgtable.h>
 
 #include <xen/interface/xen.h>
-#include <xen/grant_table.h>
+#include <xen/interface/grant_table.h>
 #include <xen/features.h>
 
 /* Xen machine address */
diff --git a/include/xen/grant_table.h b/include/xen/grant_table.h
index 6f77378..6a1ef86 100644
--- a/include/xen/grant_table.h
+++ b/include/xen/grant_table.h
@@ -131,6 +131,15 @@ void gnttab_cancel_free_callback(struct gnttab_free_callback *callback);
 void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid,
 				     unsigned long frame, int readonly);
 
+/* Give access to the first 4K of the page */
+static inline void gnttab_page_grant_foreign_access_ref(
+	grant_ref_t ref, domid_t domid,
+	struct page *page, int readonly)
+{
+	gnttab_grant_foreign_access_ref(ref, domid, page_to_mfn(page),
+					readonly);
+}
+
 void gnttab_grant_foreign_transfer_ref(grant_ref_t, domid_t domid,
 				       unsigned long pfn);
 
-- 
2.1.4

  parent reply	other threads:[~2015-07-09 20:43 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1436474552-31789-1-git-send-email-julien.grall@citrix.com>
2015-07-09 20:42 ` [PATCH v2 01/20] xen: Add Xen specific page definition Julien Grall
2015-07-16 14:19   ` Stefano Stabellini
     [not found]   ` <alpine.DEB.2.02.1507161515420.17378@kaball.uk.xensource.com>
2015-07-16 14:52     ` Julien Grall
2015-07-24  9:28   ` David Vrabel
     [not found]   ` <55B20540.3020000@citrix.com>
2015-07-24  9:39     ` Julien Grall
     [not found]     ` <55B207C6.4020300@citrix.com>
2015-07-24  9:48       ` David Vrabel
     [not found]       ` <55B209D9.1080602@citrix.com>
2015-07-24  9:51         ` Julien Grall
     [not found]         ` <55B20ABE.7000609@citrix.com>
2015-07-24 10:34           ` David Vrabel
     [not found]           ` <55B214C5.3020501@citrix.com>
2015-07-24 10:43             ` Ian Campbell
2015-07-24 13:03             ` Julien Grall
2015-07-09 20:42 ` [PATCH v2 02/20] xen: Introduce a function to split a Linux page into Xen page Julien Grall
2015-07-16 14:23   ` Stefano Stabellini
     [not found]   ` <alpine.DEB.2.02.1507161520330.17378@kaball.uk.xensource.com>
2015-07-16 14:54     ` Julien Grall
     [not found]     ` <55A7C5A1.7060006@citrix.com>
2015-07-16 15:19       ` Andrew Cooper
2015-07-16 16:09         ` Julien Grall
2015-07-16 16:13           ` Andrew Cooper
2015-07-24  9:31   ` David Vrabel
     [not found]   ` <55B205FB.5080209@citrix.com>
2015-07-24  9:54     ` Julien Grall
     [not found]     ` <55B20B56.7020605@citrix.com>
2015-07-24 10:10       ` David Vrabel
     [not found]       ` <55B20F1F.60902@citrix.com>
2015-07-24 10:20         ` Julien Grall
2015-08-05 14:30         ` Julien Grall
     [not found]         ` <55C21DF3.2090201@citrix.com>
2015-08-05 15:50           ` David Vrabel
     [not found]           ` <55C230C9.7060506@citrix.com>
2015-08-05 16:06             ` Julien Grall
2015-07-09 20:42 ` [PATCH v2 03/20] xen/grant: Introduce helpers to split a page into grant Julien Grall
2015-07-09 20:42 ` Julien Grall [this message]
2015-07-09 20:42 ` [PATCH v2 05/20] block/xen-blkfront: Split blkif_queue_request in 2 Julien Grall
2015-07-09 20:42 ` [PATCH v2 06/20] block/xen-blkfront: Store a page rather a pfn in the grant structure Julien Grall
2015-07-09 20:42 ` [PATCH v2 07/20] block/xen-blkfront: split get_grant in 2 Julien Grall
2015-07-09 20:42 ` [PATCH v2 08/20] net/xen-netback: xenvif_gop_frag_copy: move GSO check out of the loop Julien Grall
2015-07-09 20:42 ` [PATCH v2 09/20] xen/biomerge: Don't allow biovec to be merge when Linux is not using 4KB page Julien Grall
2015-07-10 19:12   ` Konrad Rzeszutek Wilk
     [not found]   ` <20150710191245.GA31063@l.oracle.com>
2015-07-15  8:56     ` Julien Grall
2015-07-16 15:33     ` Stefano Stabellini
     [not found]     ` <alpine.DEB.2.02.1507161627010.17378@kaball.uk.xensource.com>
2015-07-16 16:15       ` Julien Grall
     [not found]       ` <55A7D8AD.1090102@citrix.com>
2015-07-16 18:30         ` Konrad Rzeszutek Wilk
2015-07-17 13:20         ` Stefano Stabellini
     [not found]         ` <alpine.DEB.2.02.1507171418260.17378@kaball.uk.xensource.com>
2015-07-17 14:44           ` Julien Grall
     [not found]           ` <55A914D5.7080900@citrix.com>
2015-07-17 14:45             ` Stefano Stabellini
     [not found]             ` <alpine.DEB.2.02.1507171545170.17378@kaball.uk.xensource.com>
2015-07-17 14:46               ` Julien Grall
2015-07-09 20:42 ` [PATCH v2 10/20] xen/xenbus: Use Xen page definition Julien Grall
2015-07-16 15:35   ` Stefano Stabellini
2015-07-24  9:49   ` David Vrabel
2015-07-09 20:42 ` [PATCH v2 11/20] tty/hvc: xen: Use xen " Julien Grall
2015-07-09 20:42 ` [PATCH v2 12/20] xen/balloon: Don't rely on the page granularity is the same for Xen and Linux Julien Grall
2015-07-17 14:03   ` Stefano Stabellini
     [not found]   ` <alpine.DEB.2.02.1507161819200.17378@kaball.uk.xensource.com>
2015-07-17 14:32     ` Julien Grall
2015-07-09 20:42 ` [PATCH v2 13/20] xen/events: fifo: Make it running on 64KB granularity Julien Grall
2015-07-09 20:42 ` [PATCH v2 14/20] xen/grant-table: " Julien Grall
2015-07-09 20:42 ` [PATCH v2 15/20] block/xen-blkfront: Make it running on 64KB page granularity Julien Grall
2015-07-21 11:06   ` Roger Pau Monné
     [not found]   ` <55AE27C2.8090803@citrix.com>
2015-07-21 13:07     ` Julien Grall
2015-07-09 20:42 ` [PATCH v2 16/20] block/xen-blkback: " Julien Grall
2015-07-09 20:42 ` [PATCH v2 17/20] net/xen-netfront: " Julien Grall
2015-07-09 20:42 ` [PATCH v2 18/20] net/xen-netback: " Julien Grall
2015-07-09 20:42 ` [PATCH v2 19/20] xen/privcmd: Add support for Linux " Julien Grall
2015-07-09 20:42 ` [PATCH v2 20/20] arm/xen: Add support for " Julien Grall
     [not found] ` <1436474552-31789-20-git-send-email-julien.grall@citrix.com>
2015-07-13 20:13   ` [PATCH v2 19/20] xen/privcmd: Add support for Linux " Boris Ostrovsky
     [not found]   ` <55A41BE4.3080104@oracle.com>
2015-07-13 22:05     ` Julien Grall
     [not found]     ` <55A43638.4030503@citrix.com>
2015-07-14 15:28       ` Boris Ostrovsky
     [not found]       ` <55A52A9E.2000400@oracle.com>
2015-07-14 15:37         ` Julien Grall
2015-07-16 17:12   ` Stefano Stabellini
     [not found]   ` <alpine.DEB.2.02.1507161707300.17378@kaball.uk.xensource.com>
2015-07-16 17:16     ` Stefano Stabellini
2015-07-17 12:50     ` Julien Grall
     [not found] ` <1436474552-31789-4-git-send-email-julien.grall@citrix.com>
2015-07-16 15:01   ` [PATCH v2 03/20] xen/grant: Introduce helpers to split a page into grant Stefano Stabellini
     [not found]   ` <alpine.DEB.2.02.1507161526030.17378@kaball.uk.xensource.com>
2015-07-16 16:07     ` Julien Grall
     [not found]     ` <55A7D6AC.5060004@citrix.com>
2015-07-17 13:10       ` Julien Grall
     [not found] ` <1436474552-31789-5-git-send-email-julien.grall@citrix.com>
2015-07-16 15:05   ` [PATCH v2 04/20] xen/grant: Add helper gnttab_page_grant_foreign_access_ref Stefano Stabellini
     [not found]   ` <alpine.DEB.2.02.1507161603490.17378@kaball.uk.xensource.com>
2015-07-16 16:12     ` Julien Grall
2015-07-24  9:35   ` David Vrabel
     [not found] ` <1436474552-31789-15-git-send-email-julien.grall@citrix.com>
2015-07-16 15:47   ` [PATCH v2 14/20] xen/grant-table: Make it running on 64KB granularity Stefano Stabellini
     [not found]   ` <alpine.DEB.2.02.1507161643380.17378@kaball.uk.xensource.com>
2015-07-16 16:23     ` Julien Grall
     [not found]     ` <55A7DA8F.2040805@citrix.com>
2015-07-17 13:37       ` Stefano Stabellini
     [not found] ` <1436474552-31789-18-git-send-email-julien.grall@citrix.com>
2015-07-20 17:26   ` [PATCH v2 17/20] net/xen-netfront: Make it running on 64KB page granularity Julien Grall
2015-07-20 17:54 ` [PATCH v2 00/20] xen/arm64: Add support for 64KB page Julien Grall
     [not found] ` <1436474552-31789-6-git-send-email-julien.grall@citrix.com>
2015-07-21  9:54   ` [PATCH v2 05/20] block/xen-blkfront: Split blkif_queue_request in 2 Roger Pau Monné
     [not found]   ` <55AE16EC.2020204@citrix.com>
2015-07-21 11:12     ` Julien Grall
     [not found] ` <1436474552-31789-7-git-send-email-julien.grall@citrix.com>
2015-07-16 15:11   ` [PATCH v2 06/20] block/xen-blkfront: Store a page rather a pfn in the grant structure Stefano Stabellini
2015-07-21 10:16   ` Roger Pau Monné
     [not found]   ` <55AE1BE7.5030102@citrix.com>
2015-07-21 11:19     ` Julien Grall
     [not found]   ` <alpine.DEB.2.02.1507161610570.17378@kaball.uk.xensource.com>
2015-07-23 17:18     ` Julien Grall
     [not found] ` <1436474552-31789-8-git-send-email-julien.grall@citrix.com>
2015-07-21 10:30   ` [PATCH v2 07/20] block/xen-blkfront: split get_grant in 2 Roger Pau Monné
     [not found]   ` <55AE1F2A.6010300@citrix.com>
2015-07-21 13:03     ` Julien Grall
     [not found] ` <1436474552-31789-12-git-send-email-julien.grall@citrix.com>
2015-07-16 15:36   ` [PATCH v2 11/20] tty/hvc: xen: Use xen page definition Stefano Stabellini
2015-07-24  9:52   ` David Vrabel
     [not found] ` <1436474552-31789-14-git-send-email-julien.grall@citrix.com>
2015-07-16 15:43   ` [PATCH v2 13/20] xen/events: fifo: Make it running on 64KB granularity Stefano Stabellini
     [not found]   ` <alpine.DEB.2.02.1507161642130.17378@kaball.uk.xensource.com>
2015-07-16 16:18     ` Julien Grall
     [not found]     ` <55A7D955.5090203@citrix.com>
2015-07-17 13:06       ` Stefano Stabellini
2015-07-24 10:36   ` David Vrabel
     [not found]   ` <55B21527.4010601@citrix.com>
2015-08-06 15:43     ` Julien Grall

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='1436474552-31789-5-git-send-email-julien.grall__19607.7381297529$1436474745$gmane$org@citrix.com' \
    --to=julien.grall@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=julien.grall@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xenproject.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).