]> git.baikalelectronics.ru Git - kernel.git/commit
drm/virtio: Pass correct device to dma_sync_sgtable_for_device()
authorOleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Fri, 24 Feb 2023 15:34:50 +0000 (17:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Mar 2023 12:33:39 +0000 (13:33 +0100)
commitecb4f71645055bdbff87daa4236d67439ce80c06
tree8443ac4764ad252f4078d67ae245b4d18c125b4d
parent0a4b057eb15e3450d6b1ced73932c8689af184f7
drm/virtio: Pass correct device to dma_sync_sgtable_for_device()

[ Upstream commit a0c46b056ae046af85230895d4be41732c28a97c ]

The "vdev->dev.parent" should be used instead of "vdev->dev" as a device
for which to perform the DMA operation in both
virtio_gpu_cmd_transfer_to_host_2d(3d).

Because the virtio-gpu device "vdev->dev" doesn't really have DMA OPS
assigned to it, but parent (virtio-pci or virtio-mmio) device
"vdev->dev.parent" has. The more, the sgtable in question the code is
trying to sync here was mapped for the parent device (by using its DMA OPS)
previously at:
virtio_gpu_object_shmem_init()->drm_gem_shmem_get_pages_sgt()->
dma_map_sgtable(), so should be synced here for the same parent device.

Fixes: 72479feacf3b ("drm/virtio: Improve DMA API usage for shmem BOs")
Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230224153450.526222-1-olekstysh@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/virtio/virtgpu_vq.c