Commit 415cb458 authored by Thomas Zimmermann's avatar Thomas Zimmermann Committed by Dmitry Osipenko
Browse files

drm/virtio: Use dma_buf from GEM object instance



Avoid dereferencing struct drm_gem_object.import_attach for the
imported dma-buf. The dma_buf field in the GEM object instance refers
to the same buffer. Prepares to make import_attach optional.

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarDmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: default avatarDmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://lore.kernel.org/r/20250414131507.566072-3-tzimmermann@suse.de
parent 964f2a5c
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -204,16 +204,15 @@ static void virtgpu_dma_buf_free_obj(struct drm_gem_object *obj)
{
	struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj);
	struct virtio_gpu_device *vgdev = obj->dev->dev_private;
	struct dma_buf_attachment *attach = obj->import_attach;

	if (drm_gem_is_imported(obj)) {
		struct dma_buf *dmabuf = attach->dmabuf;
		struct dma_buf *dmabuf = obj->dma_buf;

		dma_resv_lock(dmabuf->resv, NULL);
		virtgpu_dma_buf_unmap(bo);
		dma_resv_unlock(dmabuf->resv);

		dma_buf_detach(dmabuf, attach);
		dma_buf_detach(dmabuf, obj->import_attach);
		dma_buf_put(dmabuf);
	}