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 <s...@canb.auug.org.au>
Date: Thu, 30 Jul 2020 17:39:11 +1000
Subject: [PATCH] virtio_vdpa: fix legacy features handling

Signed-off-by: Stephen Rothwell <s...@canb.auug.org.au>
---
 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: pgpMVVi46WfVx.pgp
Description: OpenPGP digital signature

Reply via email to