Patch "drm/virtio: Pass correct device to dma_sync_sgtable_for_device()" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/virtio: Pass correct device to dma_sync_sgtable_for_device()

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-virtio-pass-correct-device-to-dma_sync_sgtable_f.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a508fa1b1818ae8652255ae0c6b6813402b7f05b
Author: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
Date:   Fri Feb 24 17:34:50 2023 +0200

    drm/virtio: Pass correct device to dma_sync_sgtable_for_device()
    
    [ Upstream commit a54bace095d00e9222161495649688bc43de4dde ]
    
    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: b5c9ed70d1a9 ("drm/virtio: Improve DMA API usage for shmem BOs")
    Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
    Reviewed-by: Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx>
    Signed-off-by: Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230224153450.526222-1-olekstysh@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index 9ff8660b50ade..208e9434cb28d 100644
--- a/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ b/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -597,7 +597,7 @@ void virtio_gpu_cmd_transfer_to_host_2d(struct virtio_gpu_device *vgdev,
 	bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev);
 
 	if (virtio_gpu_is_shmem(bo) && use_dma_api)
-		dma_sync_sgtable_for_device(&vgdev->vdev->dev,
+		dma_sync_sgtable_for_device(vgdev->vdev->dev.parent,
 					    bo->base.sgt, DMA_TO_DEVICE);
 
 	cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
@@ -1019,7 +1019,7 @@ void virtio_gpu_cmd_transfer_to_host_3d(struct virtio_gpu_device *vgdev,
 	bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev);
 
 	if (virtio_gpu_is_shmem(bo) && use_dma_api)
-		dma_sync_sgtable_for_device(&vgdev->vdev->dev,
+		dma_sync_sgtable_for_device(vgdev->vdev->dev.parent,
 					    bo->base.sgt, DMA_TO_DEVICE);
 
 	cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux