This patch is preliminary work to enable network device
type support to VDUSE.

As VIRTIO_BLK_F_CONFIG_WCE shares the same value as
VIRTIO_NET_F_HOST_TSO4, we need to restrict its check
to Virtio-blk device type.

Acked-by: Jason Wang <jasow...@redhat.com>
Reviewed-by: Xie Yongji <xieyon...@bytedance.com>
Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com>
---
 drivers/vdpa/vdpa_user/vduse_dev.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c 
b/drivers/vdpa/vdpa_user/vduse_dev.c
index 0ddd4b8abecb..0486ff672408 100644
--- a/drivers/vdpa/vdpa_user/vduse_dev.c
+++ b/drivers/vdpa/vdpa_user/vduse_dev.c
@@ -1671,13 +1671,14 @@ static bool device_is_allowed(u32 device_id)
        return false;
 }
 
-static bool features_is_valid(u64 features)
+static bool features_is_valid(struct vduse_dev_config *config)
 {
-       if (!(features & (1ULL << VIRTIO_F_ACCESS_PLATFORM)))
+       if (!(config->features & (1ULL << VIRTIO_F_ACCESS_PLATFORM)))
                return false;
 
        /* Now we only support read-only configuration space */
-       if (features & (1ULL << VIRTIO_BLK_F_CONFIG_WCE))
+       if ((config->device_id == VIRTIO_ID_BLOCK) &&
+                       (config->features & (1ULL << VIRTIO_BLK_F_CONFIG_WCE)))
                return false;
 
        return true;
@@ -1704,7 +1705,7 @@ static bool vduse_validate_config(struct vduse_dev_config 
*config)
        if (!device_is_allowed(config->device_id))
                return false;
 
-       if (!features_is_valid(config->features))
+       if (!features_is_valid(config))
                return false;
 
        return true;
-- 
2.43.0


Reply via email to