]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/virtio: Don't detach GEM from a non-created context
authorJason Macnak <natsu@google.com>
Thu, 25 Jun 2026 17:08:28 +0000 (10:08 -0700)
committerDmitry Osipenko <dmitry.osipenko@collabora.com>
Mon, 13 Jul 2026 16:13:02 +0000 (19:13 +0300)
Applies the same treatment as commit 7cf6dd467e87 ("drm/virtio:
Don't attach GEM to a non-created context in gem_object_open()")
to virtio_gpu_gem_object_close() to avoid trying to detach
a resource that was never attached due to a context
never being created when context_init is supported.

Fixes: 086b9f27f0ab ("drm/virtio: Don't create a context with default param if context_init is supported")
Cc: <stable@vger.kernel.org> # v6.14+
Signed-off-by: Jason Macnak <natsu@google.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://patch.msgid.link/20260625170828.3335431-1-natsu@google.com
drivers/gpu/drm/virtio/virtgpu_gem.c

index 435d37d36034023a2087b0a67c1708afc0431eef..66c3f6f74e9c6972c38f67fca078a4c80e47b33d 100644 (file)
@@ -139,13 +139,15 @@ void virtio_gpu_gem_object_close(struct drm_gem_object *obj,
        if (!vgdev->has_virgl_3d)
                return;
 
-       objs = virtio_gpu_array_alloc(1);
-       if (!objs)
-               return;
-       virtio_gpu_array_add_obj(objs, obj);
+       if (vfpriv->context_created) {
+               objs = virtio_gpu_array_alloc(1);
+               if (!objs)
+                       return;
+               virtio_gpu_array_add_obj(objs, obj);
 
-       virtio_gpu_cmd_context_detach_resource(vgdev, vfpriv->ctx_id,
-                                              objs);
+               virtio_gpu_cmd_context_detach_resource(vgdev, vfpriv->ctx_id,
+                                                      objs);
+       }
        virtio_gpu_notify(vgdev);
 }