linux-next: build failure after merge of the vhost tree

From: Stephen Rothwell
Date: Thu Jul 30 2020 - 03:52:55 EST


Hi all,

After merging the vhost tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/virtio/virtio_vdpa.c: In function 'virtio_vdpa_get':
drivers/virtio/virtio_vdpa.c:60:32: warning: unused variable 'ops' [-Wunused-variable]
60 | const struct vdpa_config_ops *ops = vdpa->config;
| ^~~
drivers/virtio/virtio_vdpa.c: In function 'virtio_vdpa_finalize_features':
drivers/virtio/virtio_vdpa.c:301:9: error: void value not ignored as it ought to be
301 | return vdpa_set_features(vdpa, vdev->features);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/virtio/virtio_vdpa.c:296:32: warning: unused variable 'ops' [-Wunused-variable]
296 | const struct vdpa_config_ops *ops = vdpa->config;
| ^~~
drivers/virtio/virtio_vdpa.c:302:1: warning: control reaches end of non-void function [-Wreturn-type]
302 | }
| ^
drivers/vhost/vdpa.c: In function 'vhost_vdpa_get_config':
drivers/vhost/vdpa.c:198:32: warning: unused variable 'ops' [-Wunused-variable]
198 | const struct vdpa_config_ops *ops = vdpa->config;
| ^~~
drivers/vhost/vdpa.c: In function 'vhost_vdpa_set_features':
drivers/vhost/vdpa.c:284:6: error: void value not ignored as it ought to be
284 | if (vdpa_set_features(vdpa, features))
| ^~~~~~~~~~~~~~~~~

Caused by commit

d4ff0377f05b ("virtio_vdpa: legacy features handling")

I added the following (hack) patch for today.

From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Thu, 30 Jul 2020 17:39:11 +1000
Subject: [PATCH] virtio_vdpa: fix legacy features handling

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
drivers/vhost/vdpa.c | 4 +---
drivers/virtio/virtio_vdpa.c | 5 ++---
2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
index be9b3ed01a93..f7ef5f3ef0e3 100644
--- a/drivers/vhost/vdpa.c
+++ b/drivers/vhost/vdpa.c
@@ -195,7 +195,6 @@ static long vhost_vdpa_get_config(struct vhost_vdpa *v,
struct vhost_vdpa_config __user *c)
{
struct vdpa_device *vdpa = v->vdpa;
- const struct vdpa_config_ops *ops = vdpa->config;
struct vhost_vdpa_config config;
unsigned long size = offsetof(struct vhost_vdpa_config, buf);
u8 *buf;
@@ -281,8 +280,7 @@ static long vhost_vdpa_set_features(struct vhost_vdpa *v, u64 __user *featurep)
if (features & ~vhost_vdpa_features[v->virtio_id])
return -EINVAL;

- if (vdpa_set_features(vdpa, features))
- return -EINVAL;
+ vdpa_set_features(vdpa, features);

return 0;
}
diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c
index d0ae58d35392..73c5d49ff0df 100644
--- a/drivers/virtio/virtio_vdpa.c
+++ b/drivers/virtio/virtio_vdpa.c
@@ -57,7 +57,6 @@ static void virtio_vdpa_get(struct virtio_device *vdev, unsigned offset,
void *buf, unsigned len)
{
struct vdpa_device *vdpa = vd_get_vdpa(vdev);
- const struct vdpa_config_ops *ops = vdpa->config;

vdpa_get_config(vdpa, offset, buf, len);
}
@@ -293,12 +292,12 @@ static u64 virtio_vdpa_get_features(struct virtio_device *vdev)
static int virtio_vdpa_finalize_features(struct virtio_device *vdev)
{
struct vdpa_device *vdpa = vd_get_vdpa(vdev);
- const struct vdpa_config_ops *ops = vdpa->config;

/* Give virtio_ring a chance to accept features. */
vring_transport_features(vdev);

- return vdpa_set_features(vdpa, vdev->features);
+ vdpa_set_features(vdpa, vdev->features);
+ return 0;
}

static const char *virtio_vdpa_bus_name(struct virtio_device *vdev)
--
2.27.0

--
Cheers,
Stephen Rothwell

Attachment: pgpoIP8_n7haG.pgp
Description: OpenPGP digital signature