Commit a115b571 authored by Maxime Coquelin's avatar Maxime Coquelin Committed by Michael S. Tsirkin

vduse: validate block features only with block devices

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: default avatarJason Wang <jasowang@redhat.com>
Reviewed-by: default avatarXie Yongji <xieyongji@bytedance.com>
Reviewed-by: default avatarEugenio Pérez <eperezma@redhat.com>
Signed-off-by: default avatarMaxime Coquelin <maxime.coquelin@redhat.com>
Message-Id: <20240109111025.1320976-2-maxime.coquelin@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 5da7137d
......@@ -1705,13 +1705,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 & BIT_ULL(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 & BIT_ULL(VIRTIO_BLK_F_CONFIG_WCE)))
return false;
return true;
......@@ -1738,7 +1739,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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment