]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/vmwgfx: Merge vmw_bo_release and vmw_bo_free functions
authorIan Forbes <ian.forbes@broadcom.com>
Wed, 7 Jan 2026 15:20:59 +0000 (09:20 -0600)
committerZack Rusin <zack.rusin@broadcom.com>
Wed, 7 Jan 2026 16:42:25 +0000 (11:42 -0500)
Some of the warnings need to be reordered between these two functions
in order to be correct. This has happened multiple times.
Merging them solves this problem once and for all.

Fixes: d6667f0ddf46 ("drm/vmwgfx: Fix handling of dumb buffers")
Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
Signed-off-by: Zack Rusin <zack.rusin@broadcom.com>
Link: https://patch.msgid.link/20260107152059.3048329-1-ian.forbes@broadcom.com
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c

index f031a312c78356e1ca7612c5672188db7760feb4..b22887e8c8815dfc9c247ef8c261b9603aaba0a3 100644 (file)
 
 #include <drm/ttm/ttm_placement.h>
 
-static void vmw_bo_release(struct vmw_bo *vbo)
+/**
+ * vmw_bo_free - vmw_bo destructor
+ *
+ * @bo: Pointer to the embedded struct ttm_buffer_object
+ */
+static void vmw_bo_free(struct ttm_buffer_object *bo)
 {
        struct vmw_resource *res;
+       struct vmw_bo *vbo = to_vmw_bo(&bo->base);
 
        WARN_ON(kref_read(&vbo->tbo.base.refcount) != 0);
        vmw_bo_unmap(vbo);
@@ -62,20 +68,8 @@ static void vmw_bo_release(struct vmw_bo *vbo)
                }
                vmw_surface_unreference(&vbo->dumb_surface);
        }
-       drm_gem_object_release(&vbo->tbo.base);
-}
-
-/**
- * vmw_bo_free - vmw_bo destructor
- *
- * @bo: Pointer to the embedded struct ttm_buffer_object
- */
-static void vmw_bo_free(struct ttm_buffer_object *bo)
-{
-       struct vmw_bo *vbo = to_vmw_bo(&bo->base);
-
        WARN_ON(!RB_EMPTY_ROOT(&vbo->res_tree));
-       vmw_bo_release(vbo);
+       drm_gem_object_release(&vbo->tbo.base);
        WARN_ON(vbo->dirty);
        kfree(vbo);
 }