mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
Revert "virtio: reject shm region if length is zero"
The commit206cc44588
("virtio: reject shm region if length is zero") breaks the Virtio-gpu `host_visible` feature. As you can see in the snippet below, host_visible_region is zero because of the `kzalloc`. It's using the `vm_get_shm_region` (drivers/virtio/virtio_mmio.c:536) to read the `addr` and `len` from qemu/crosvm. ``` drivers/gpu/drm/virtio/virtgpu_kms.c 132 vgdev = drmm_kzalloc(dev, sizeof(struct virtio_gpu_device), GFP_KERNEL); [...] 177 if (virtio_get_shm_region(vgdev->vdev, &vgdev->host_visible_region, 178 VIRTIO_GPU_SHM_ID_HOST_VISIBLE)) { ``` Now it always fails. To fix, revert the offending commit. Fixes:206cc44588
("virtio: reject shm region if length is zero") Signed-off-by: Igor Torrente <igor.torrente@collabora.com> Message-Id: <20250807124145.81816-1-igor.torrente@collabora.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
dd54bcf86c
commit
ced17ee32a
@ -328,8 +328,6 @@ static inline
|
|||||||
bool virtio_get_shm_region(struct virtio_device *vdev,
|
bool virtio_get_shm_region(struct virtio_device *vdev,
|
||||||
struct virtio_shm_region *region, u8 id)
|
struct virtio_shm_region *region, u8 id)
|
||||||
{
|
{
|
||||||
if (!region->len)
|
|
||||||
return false;
|
|
||||||
if (!vdev->config->get_shm_region)
|
if (!vdev->config->get_shm_region)
|
||||||
return false;
|
return false;
|
||||||
return vdev->config->get_shm_region(vdev, region, id);
|
return vdev->config->get_shm_region(vdev, region, id);
|
||||||
|
Loading…
Reference in New Issue
Block a user