]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/virtio: Use dma_buf from GEM object instance
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 14 Apr 2025 13:12:01 +0000 (15:12 +0200)
committerDmitry Osipenko <dmitry.osipenko@collabora.com>
Wed, 16 Apr 2025 07:05:03 +0000 (10:05 +0300)
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: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://lore.kernel.org/r/20250414131507.566072-3-tzimmermann@suse.de
drivers/gpu/drm/virtio/virtgpu_prime.c

index ce49282198cbf6aa31751248f4b3f30c74494d1c..1118a0250279b58b51758f0f7b395545e630cfe4 100644 (file)
@@ -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);
        }