Commit 274840e5 authored by Felix Kuehling's avatar Felix Kuehling Committed by Alex Deucher
Browse files

drm/ttm: Add release_notify callback to ttm_bo_driver



This notifies the driver that a BO is about to be released.

Releasing a BO also invokes the move_notify callback from
ttm_bo_cleanup_memtype_use, but that happens too late for anything
that would add fences to the BO and require a delayed delete.

Signed-off-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent d9ec5cfd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -671,6 +671,9 @@ static void ttm_bo_release(struct kref *kref)
	struct ttm_bo_device *bdev = bo->bdev;
	struct ttm_mem_type_manager *man = &bdev->man[bo->mem.mem_type];

	if (bo->bdev->driver->release_notify)
		bo->bdev->driver->release_notify(bo);

	drm_vma_offset_remove(&bdev->vma_manager, &bo->vma_node);
	ttm_mem_io_lock(man, false);
	ttm_mem_io_free_vm(bo);
+10 −0
Original line number Diff line number Diff line
@@ -390,6 +390,16 @@ struct ttm_bo_driver {
	 * notify driver that a BO was deleted from LRU.
	 */
	void (*del_from_lru_notify)(struct ttm_buffer_object *bo);

	/**
	 * Notify the driver that we're about to release a BO
	 *
	 * @bo: BO that is about to be released
	 *
	 * Gives the driver a chance to do any cleanup, including
	 * adding fences that may force a delayed delete
	 */
	void (*release_notify)(struct ttm_buffer_object *bo);
};

/**