Re: [PATCH] drm/virtio: use the DMA API for resource backing on Xen

Dmitry Osipenko <[email protected]>
Newsgroups dev.linux.lists.virtualization,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 8/7/26 01:54, Benjamin Leggett via B4 Relay wrote:
> From: Benjamin Leggett <[email protected]>
> 
> On a Xen PV domain page addresses bear no relation to the real machine
> addresses the host would have to use to reach it.
> virtio_ring.c handles this correctly, vring_use_map_api() returns true
> for any xen_domain() regardless of VIRTIO_F_ACCESS_PLATFORM.
> 
> virtio-gpu makes the same decision independently, but its copy
> looks only at the feature bit:
> 
> 	bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev);
> 
> QEMU does not set iommu_platform on virtio-vga by default, so
> VIRTIO_F_ACCESS_PLATFORM is not negotiated, use_dma_api is false, and
> virtio_gpu_object_shmem_init() describes the framebuffer's backing pages
> to the host with sg_phys().  Those are guest-physical addresses. In a PV
> domain they resolve, on the host side, to pages belonging to some other
> domain, so the host scans out unrelated memory.
> 
> Move the decision into virtio_gpu_use_dma_api() and give it the
> xen_domain() check, like vring_use_map_api() has. This
> additionally enables the dma_sync_sgtable_for_device() calls in
> virtgpu_vq.c, which are required for correctness whenever swiotlb
> is in play.
> 
> Reproduced with a Xen 4.21 PV dom0 nested inside QEMU 8.2 with
> virtio-vga, on both a distro 6.8 kernel and 6.18 LTS. A PVH dom0
> works fine and doesn't need this fix because it is identity-mapped,
> only PV dom0s are affected.
> 
> Fixes: a3b815f09bb8 ("drm/virtio: add iommu support.")
> Signed-off-by: Ben Leggett <[email protected]>
> ---
>  drivers/gpu/drm/virtio/virtgpu_drv.h    | 20 ++++++++++++++++++++
>  drivers/gpu/drm/virtio/virtgpu_object.c |  2 +-
>  drivers/gpu/drm/virtio/virtgpu_vq.c     |  6 +++---
>  3 files changed, 24 insertions(+), 4 deletions(-)

Feel free to send follow-up patches to fix problems reported by the
Sashiko bot.

Applied to drm-misc-fixes, thanks!

-- 
Best regards,
Dmitry
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.