linux/drivers/gpu/drm/virtio
Vivek Kasireddy 44b6535d8a drm/virtio: Fix NULL pointer deref in virtgpu_dma_buf_free_obj()
There is a chance that obj->dma_buf would be NULL by the time
virtgpu_dma_buf_free_obj() is called. This can happen for imported
prime objects, when drm_gem_object_exported_dma_buf_free() gets
called on them before drm_gem_object_free(). This is because
drm_gem_object_exported_dma_buf_free() explicitly sets
obj->dma_buf to NULL.

Therefore, fix this issue by storing the dma_buf pointer in the
virtio_gpu_object instance and using it in virtgpu_dma_buf_free_obj.
This stored pointer is guaranteed to be valid until the object is
freed as we took a reference on it in virtgpu_gem_prime_import().

Fixes: 415cb45895 ("drm/virtio: Use dma_buf from GEM object instance")
Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://lore.kernel.org/r/20250501232419.180337-1-vivek.kasireddy@intel.com
2025-05-12 14:49:41 +03:00
..
Kconfig drm/virtgpu: Run DRM default client setup 2024-09-26 09:31:28 +02:00
Makefile drm/virtio: Refactor and optimize job submission code path 2023-06-03 04:50:40 +03:00
virtgpu_debugfs.c
virtgpu_display.c drm/connector: make mode_valid take a const struct drm_display_mode 2025-01-07 12:45:19 +02:00
virtgpu_drv.c virtgpu: don't reset on shutdown 2025-04-18 10:05:49 -04:00
virtgpu_drv.h drm/virtio: Fix NULL pointer deref in virtgpu_dma_buf_free_obj() 2025-05-12 14:49:41 +03:00
virtgpu_fence.c dma-buf/dma-fence: remove unnecessary callbacks 2025-03-06 15:20:53 +01:00
virtgpu_gem.c Merge drm/drm-fixes into drm-misc-fixes 2025-04-08 10:15:47 +02:00
virtgpu_ioctl.c drm/virtio: Use generic dumb_map_offset implementation 2024-11-18 14:08:37 +03:00
virtgpu_kms.c virtio: rename virtio_find_vqs_info() to virtio_find_vqs() 2024-07-17 05:20:58 -04:00
virtgpu_object.c drm/virtio: Add helpers to initialize and free the imported object 2024-11-26 12:52:52 +03:00
virtgpu_plane.c drm/virtio: Support drm_panic with non-vmapped shmem BO 2025-04-16 10:19:42 +03:00
virtgpu_prime.c drm/virtio: Fix NULL pointer deref in virtgpu_dma_buf_free_obj() 2025-05-12 14:49:41 +03:00
virtgpu_submit.c drm/virtio: Fix type of dma-fence context variable 2024-07-24 20:42:19 +03:00
virtgpu_trace_points.c
virtgpu_trace.h tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
virtgpu_vq.c drm/virtio: Add drm_panic support 2025-02-09 20:36:51 +03:00
virtgpu_vram.c drm/virtio: Support partial maps of GEM objects 2025-01-25 00:16:57 +03:00