All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH v3 21/21] xen/xenbus: eliminate xenbus_grant_ring()
Date: Thu,  5 May 2022 10:16:40 +0200	[thread overview]
Message-ID: <20220505081640.17425-22-jgross@suse.com> (raw)
In-Reply-To: <20220505081640.17425-1-jgross@suse.com>

There is no external user of xenbus_grant_ring() left, so merge it into
the only caller xenbus_setup_ring().

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
V2:
- make error message more precise (Andrew Cooper)
---
 drivers/xen/xenbus/xenbus_client.c | 65 +++++++++---------------------
 include/xen/xenbus.h               |  2 -
 2 files changed, 19 insertions(+), 48 deletions(-)

diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index 1a2e0d94ccd1..d6fdd2d209d3 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -363,50 +363,6 @@ static void xenbus_switch_fatal(struct xenbus_device *dev, int depth, int err,
 		__xenbus_switch_state(dev, XenbusStateClosing, 1);
 }
 
-/**
- * xenbus_grant_ring
- * @dev: xenbus device
- * @vaddr: starting virtual address of the ring
- * @nr_pages: number of pages to be granted
- * @grefs: grant reference array to be filled in
- *
- * Grant access to the given @vaddr to the peer of the given device.
- * Then fill in @grefs with grant references.  Return 0 on success, or
- * -errno on error.  On error, the device will switch to
- * XenbusStateClosing, and the error will be saved in the store.
- */
-int xenbus_grant_ring(struct xenbus_device *dev, void *vaddr,
-		      unsigned int nr_pages, grant_ref_t *grefs)
-{
-	int err;
-	unsigned int i;
-	grant_ref_t gref_head;
-
-	err = gnttab_alloc_grant_references(nr_pages, &gref_head);
-	if (err) {
-		xenbus_dev_fatal(dev, err, "granting access to ring page");
-		return err;
-	}
-
-	for (i = 0; i < nr_pages; i++) {
-		unsigned long gfn;
-
-		if (is_vmalloc_addr(vaddr))
-			gfn = pfn_to_gfn(vmalloc_to_pfn(vaddr));
-		else
-			gfn = virt_to_gfn(vaddr);
-
-		grefs[i] = gnttab_claim_grant_reference(&gref_head);
-		gnttab_grant_foreign_access_ref(grefs[i], dev->otherend_id,
-						gfn, 0);
-
-		vaddr = vaddr + XEN_PAGE_SIZE;
-	}
-
-	return 0;
-}
-EXPORT_SYMBOL_GPL(xenbus_grant_ring);
-
 /*
  * xenbus_setup_ring
  * @dev: xenbus device
@@ -424,6 +380,7 @@ int xenbus_setup_ring(struct xenbus_device *dev, gfp_t gfp, void **vaddr,
 		      unsigned int nr_pages, grant_ref_t *grefs)
 {
 	unsigned long ring_size = nr_pages * XEN_PAGE_SIZE;
+	grant_ref_t gref_head;
 	unsigned int i;
 	int ret;
 
@@ -433,9 +390,25 @@ int xenbus_setup_ring(struct xenbus_device *dev, gfp_t gfp, void **vaddr,
 		goto err;
 	}
 
-	ret = xenbus_grant_ring(dev, *vaddr, nr_pages, grefs);
-	if (ret)
+	ret = gnttab_alloc_grant_references(nr_pages, &gref_head);
+	if (ret) {
+		xenbus_dev_fatal(dev, ret, "granting access to %u ring pages",
+				 nr_pages);
 		goto err;
+	}
+
+	for (i = 0; i < nr_pages; i++) {
+		unsigned long gfn;
+
+		if (is_vmalloc_addr(*vaddr))
+			gfn = pfn_to_gfn(vmalloc_to_pfn(vaddr[i]));
+		else
+			gfn = virt_to_gfn(vaddr[i]);
+
+		grefs[i] = gnttab_claim_grant_reference(&gref_head);
+		gnttab_grant_foreign_access_ref(grefs[i], dev->otherend_id,
+						gfn, 0);
+	}
 
 	return 0;
 
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index b533b4adc835..eaa932b99d8a 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -224,8 +224,6 @@ int xenbus_watch_pathfmt(struct xenbus_device *dev, struct xenbus_watch *watch,
 			 const char *pathfmt, ...);
 
 int xenbus_switch_state(struct xenbus_device *dev, enum xenbus_state new_state);
-int xenbus_grant_ring(struct xenbus_device *dev, void *vaddr,
-		      unsigned int nr_pages, grant_ref_t *grefs);
 int xenbus_setup_ring(struct xenbus_device *dev, gfp_t gfp, void **vaddr,
 		      unsigned int nr_pages, grant_ref_t *grefs);
 void xenbus_teardown_ring(void **vaddr, unsigned int nr_pages,
-- 
2.35.3


  parent reply	other threads:[~2022-05-05  8:19 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-05  8:16 [PATCH v3 00/21] xen: simplify frontend side ring setup Juergen Gross
2022-05-05  8:16 ` Juergen Gross
2022-05-05  8:16 ` [PATCH v3 01/21] xen: update grant_table.h Juergen Gross
2022-05-05  8:16 ` [PATCH v3 02/21] xen/grant-table: never put a reserved grant on the free list Juergen Gross
2022-05-05  8:16 ` [PATCH v3 03/21] xen/blkfront: switch blkfront to use INVALID_GRANT_REF Juergen Gross
2022-05-09  8:20   ` Roger Pau Monné
2022-05-05  8:16 ` [PATCH v3 04/21] xen/netfront: switch netfront " Juergen Gross
2022-05-05  8:16 ` [PATCH v3 05/21] xen/scsifront: remove unused GRANT_INVALID_REF definition Juergen Gross
2022-05-05  8:16 ` [PATCH v3 06/21] xen/usb: switch xen-hcd to use INVALID_GRANT_REF Juergen Gross
2022-05-05  8:16 ` [PATCH v3 07/21] xen/drm: switch xen_drm_front " Juergen Gross
2022-05-05  8:16   ` Juergen Gross
2022-05-05  8:16 ` [PATCH v3 08/21] xen/sound: switch xen_snd_front " Juergen Gross
2022-05-05  8:16   ` Juergen Gross
2022-05-05  8:16 ` [PATCH v3 09/21] xen/dmabuf: switch gntdev-dmabuf " Juergen Gross
2022-05-05  8:16 ` [PATCH v3 10/21] xen/shbuf: switch xen-front-pgdir-shbuf " Juergen Gross
2022-05-09  8:47   ` Oleksandr
2022-05-05  8:16 ` [PATCH v3 11/21] xen: update ring.h Juergen Gross
2022-05-05  8:16 ` [PATCH v3 12/21] xen/xenbus: add xenbus_setup_ring() service function Juergen Gross
2022-05-05  8:16 ` [PATCH v3 13/21] xen/blkfront: use xenbus_setup_ring() and xenbus_teardown_ring() Juergen Gross
2022-05-09  8:42   ` Roger Pau Monné
2022-05-05  8:16 ` [PATCH v3 14/21] xen/netfront: " Juergen Gross
2022-05-05  8:16 ` [PATCH v3 15/21] xen/tpmfront: " Juergen Gross
2022-05-06 22:32   ` Jarkko Sakkinen
2022-05-18  9:41     ` Juergen Gross
2022-05-18 14:57       ` Jarkko Sakkinen
2022-05-05  8:16 ` [PATCH v3 16/21] xen/drmfront: " Juergen Gross
2022-05-05  8:16   ` Juergen Gross
2022-05-05  8:16 ` [PATCH v3 17/21] xen/pcifront: " Juergen Gross
2022-05-05  8:16 ` [PATCH v3 18/21] xen/scsifront: " Juergen Gross
2022-05-05  8:16 ` [PATCH v3 19/21] xen/usbfront: " Juergen Gross
2022-05-05  8:16 ` [PATCH v3 20/21] xen/sndfront: " Juergen Gross
2022-05-05  8:16   ` Juergen Gross
2022-05-05  8:16 ` Juergen Gross [this message]
2022-05-06  0:12 ` [PATCH v3 00/21] xen: simplify frontend side ring setup Boris Ostrovsky
2022-05-06  0:12   ` Boris Ostrovsky
2022-05-09 13:23 ` Oleksandr
2022-05-09 13:23   ` Oleksandr
2022-05-09 13:23   ` Oleksandr

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=20220505081640.17425-22-jgross@suse.com \
    --to=jgross@suse.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleksandr_tyshchenko@epam.com \
    --cc=sstabellini@kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.