Subject: Re: linux-next: build failure after merge of the xen-tip tree

From: Bob Liu <[email-masked]>
Date: Mon, 13 Apr 2015 16:36:58 +0800

Hi Stephen,

On 04/13/2015 04:09 PM, Stephen Rothwell wrote:
> Hi all,
>
> After merging the xen-tip tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
>
> drivers/char/tpm/xen-tpmfront.c: In function 'setup_ring':
> drivers/char/tpm/xen-tpmfront.c:203:7: warning: passing argument 2 of 'xenbus_grant_ring' makes pointer from integer without a cast
>    rv = xenbus_grant_ring(dev, virt_to_mfn(priv->shr));
>         ^
> In file included from drivers/char/tpm/xen-tpmfront.c:17:0:
> include/xen/xenbus.h:206:5: note: expected 'void *' but argument is of type 'long unsigned int'
>   int xenbus_grant_ring(struct xenbus_device *dev, void *vaddr,
>       ^
> drivers/char/tpm/xen-tpmfront.c:203:7: error: too few arguments to function 'xenbus_grant_ring'
>    rv = xenbus_grant_ring(dev, virt_to_mfn(priv->shr));
>         ^
> In file included from drivers/char/tpm/xen-tpmfront.c:17:0:
> include/xen/xenbus.h:206:5: note: declared here
>   int xenbus_grant_ring(struct xenbus_device *dev, void *vaddr,
>       ^
>
> Caused by commit 1b1586eeeb8c ("xenbus_client: Extend interface to
> support multi-page ring").
>
> I have used the xen-tip tree from next-20150410 for today.
>

Sorry for this issue, I missed the xentpm-front.c file in that patch.
(Original patch from Wei Liu already included the right modification 
which didn't exist in Paul's.)

Attached patch should fix this build failure.

-- 
Regards,
-Bob
>>From 973eacee793595b9790957186ffd27f192f5dd4f Mon Sep 17 00:00:00 2001
From: Bob Liu <[email-masked]>
Date: Mon, 13 Apr 2015 16:29:10 +0800
Subject: [PATCH] xen-tpmfront: fix build failure

Fix build failure caused by commit 1b1586eeeb8c ("xenbus_client: Extend
interface to support multi-page ring"), xen-tpmfront was missed in that commit.

Signed-off-by: Bob Liu <[email-masked]>
---
 drivers/char/tpm/xen-tpmfront.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/char/tpm/xen-tpmfront.c b/drivers/char/tpm/xen-tpmfront.c
index c3b4f5a..3111f27 100644
--- a/drivers/char/tpm/xen-tpmfront.c
+++ b/drivers/char/tpm/xen-tpmfront.c
@@ -193,6 +193,7 @@ static int setup_ring(struct xenbus_device *dev, struct tpm_private *priv)
 	struct xenbus_transaction xbt;
 	const char *message = NULL;
 	int rv;
+	grant_ref_t gref;
 
 	priv->shr = (void *)__get_free_page(GFP_KERNEL|__GFP_ZERO);
 	if (!priv->shr) {
@@ -200,11 +201,11 @@ static int setup_ring(struct xenbus_device *dev, struct tpm_private *priv)
 		return -ENOMEM;
 	}
 
-	rv = xenbus_grant_ring(dev, virt_to_mfn(priv->shr));
+	rv = xenbus_grant_ring(dev, &priv->shr, 1, &gref);
 	if (rv < 0)
 		return rv;
 
-	priv->ring_ref = rv;
+	priv->ring_ref = gref;
 
 	rv = xenbus_alloc_evtchn(dev, &priv->evtchn);
 	if (rv)
-- 
1.7.10.4