Commit 36a0680a authored by Christian König's avatar Christian König Committed by Alex Deucher
Browse files

drm/ttm: consistently use reservation_object_unlock



Instead of having a confusing wrapper or call the underlying ww_mutex
function directly.

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-and-Tested-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a376b0ce
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -468,7 +468,7 @@ void qxl_release_fence_buffer_objects(struct qxl_release *release)

		reservation_object_add_shared_fence(bo->resv, &release->base);
		ttm_bo_add_to_lru(bo);
		__ttm_bo_unreserve(bo);
		reservation_object_unlock(bo->resv);
	}
	spin_unlock(&glob->lru_lock);
	ww_acquire_fini(&release->ticket);
+7 −6
Original line number Diff line number Diff line
@@ -471,7 +471,7 @@ static void ttm_bo_cleanup_refs_or_queue(struct ttm_buffer_object *bo)
			ttm_bo_add_to_lru(bo);
		}

		__ttm_bo_unreserve(bo);
		reservation_object_unlock(bo->resv);
	}
	if (bo->resv != &bo->ttm_resv)
		reservation_object_unlock(&bo->ttm_resv);
@@ -517,7 +517,8 @@ static int ttm_bo_cleanup_refs_and_unlock(struct ttm_buffer_object *bo,

	if (ret && !no_wait_gpu) {
		long lret;
		ww_mutex_unlock(&bo->resv->lock);

		reservation_object_unlock(bo->resv);
		spin_unlock(&glob->lru_lock);

		lret = reservation_object_wait_timeout_rcu(resv, true,
@@ -547,7 +548,7 @@ static int ttm_bo_cleanup_refs_and_unlock(struct ttm_buffer_object *bo,
	}

	if (ret || unlikely(list_empty(&bo->ddestroy))) {
		__ttm_bo_unreserve(bo);
		reservation_object_unlock(bo->resv);
		spin_unlock(&glob->lru_lock);
		return ret;
	}
@@ -749,7 +750,7 @@ static int ttm_mem_evict_first(struct ttm_bo_device *bdev,

			if (place && !bdev->driver->eviction_valuable(bo,
								      place)) {
				__ttm_bo_unreserve(bo);
				reservation_object_unlock(bo->resv);
				ret = -EBUSY;
				continue;
			}
@@ -1788,7 +1789,7 @@ out:
	 * already swapped buffer.
	 */

	__ttm_bo_unreserve(bo);
	reservation_object_unlock(bo->resv);
	kref_put(&bo->list_kref, ttm_bo_release_list);
	return ret;
}
@@ -1825,7 +1826,7 @@ int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo)
	ret = __ttm_bo_reserve(bo, true, false, NULL);
	if (unlikely(ret != 0))
		goto out_unlock;
	__ttm_bo_unreserve(bo);
	reservation_object_unlock(bo->resv);

out_unlock:
	mutex_unlock(&bo->wu_mutex);
+4 −4
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ static void ttm_eu_backoff_reservation_reverse(struct list_head *list,
	list_for_each_entry_continue_reverse(entry, list, head) {
		struct ttm_buffer_object *bo = entry->bo;

		__ttm_bo_unreserve(bo);
		reservation_object_unlock(bo->resv);
	}
}

@@ -69,7 +69,7 @@ void ttm_eu_backoff_reservation(struct ww_acquire_ctx *ticket,
		struct ttm_buffer_object *bo = entry->bo;

		ttm_bo_add_to_lru(bo);
		__ttm_bo_unreserve(bo);
		reservation_object_unlock(bo->resv);
	}
	spin_unlock(&glob->lru_lock);

@@ -112,7 +112,7 @@ int ttm_eu_reserve_buffers(struct ww_acquire_ctx *ticket,

		ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
		if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
			__ttm_bo_unreserve(bo);
			reservation_object_unlock(bo->resv);

			ret = -EBUSY;

@@ -203,7 +203,7 @@ void ttm_eu_fence_buffer_objects(struct ww_acquire_ctx *ticket,
		else
			reservation_object_add_excl_fence(bo->resv, fence);
		ttm_bo_add_to_lru(bo);
		__ttm_bo_unreserve(bo);
		reservation_object_unlock(bo->resv);
	}
	spin_unlock(&glob->lru_lock);
	if (ticket)
+1 −13
Original line number Diff line number Diff line
@@ -940,18 +940,6 @@ static inline int ttm_bo_reserve_slowpath(struct ttm_buffer_object *bo,
	return ret;
}

/**
 * __ttm_bo_unreserve
 * @bo: A pointer to a struct ttm_buffer_object.
 *
 * Unreserve a previous reservation of @bo where the buffer object is
 * already on lru lists.
 */
static inline void __ttm_bo_unreserve(struct ttm_buffer_object *bo)
{
	ww_mutex_unlock(&bo->resv->lock);
}

/**
 * ttm_bo_unreserve
 *
@@ -966,7 +954,7 @@ static inline void ttm_bo_unreserve(struct ttm_buffer_object *bo)
		ttm_bo_add_to_lru(bo);
		spin_unlock(&bo->glob->lru_lock);
	}
	__ttm_bo_unreserve(bo);
	reservation_object_unlock(bo->resv);
}

/**