mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
vduse: validate block features only with block devices
[ Upstream commita115b5716f] 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 <jasowang@redhat.com> Reviewed-by: Xie Yongji <xieyongji@bytedance.com> Reviewed-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Message-Id: <20240109111025.1320976-2-maxime.coquelin@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Stable-dep-of:56e71885b0("vduse: Temporarily fail if control queue feature requested") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
79d54ddf0e
commit
8af2ba2b88
@@ -1705,13 +1705,14 @@ static bool device_is_allowed(u32 device_id)
|
|||||||
return false;
|
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;
|
return false;
|
||||||
|
|
||||||
/* Now we only support read-only configuration space */
|
/* 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 false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -1738,7 +1739,7 @@ static bool vduse_validate_config(struct vduse_dev_config *config)
|
|||||||
if (!device_is_allowed(config->device_id))
|
if (!device_is_allowed(config->device_id))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!features_is_valid(config->features))
|
if (!features_is_valid(config))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user