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: <[email protected]> # v6.14+
Signed-off-by: Jason Macnak <[email protected]>
---
 drivers/gpu/drm/virtio/virtgpu_gem.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c 
b/drivers/gpu/drm/virtio/virtgpu_gem.c
index 435d37d36034..66c3f6f74e9c 100644
--- a/drivers/gpu/drm/virtio/virtgpu_gem.c
+++ b/drivers/gpu/drm/virtio/virtgpu_gem.c
@@ -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);
 }
 
-- 
2.55.0.rc0.799.gd6f94ed593-goog


Reply via email to