Commit 37a0cff4 authored by Ian Forbes's avatar Ian Forbes Committed by Zack Rusin
Browse files

drm/vmwgfx: Merge vmw_bo_release and vmw_bo_free functions



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: d6667f0d ("drm/vmwgfx: Fix handling of dumb buffers")
Signed-off-by: default avatarIan Forbes <ian.forbes@broadcom.com>
Signed-off-by: default avatarZack Rusin <zack.rusin@broadcom.com>
Link: https://patch.msgid.link/20260107152059.3048329-1-ian.forbes@broadcom.com
parent d9186fae
Loading
Loading
Loading
Loading
+8 −14
Original line number Diff line number Diff line
@@ -32,9 +32,15 @@

#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);
}