Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8cfe92d6 authored by Thomas Hellstrom's avatar Thomas Hellstrom Committed by Dave Airlie
Browse files

drm/ttm: Remove the ttm_bo_block_reservation() function.



It's unused and buggy in its current form, since it can place a bo
in the reserved state without removing it from lru lists.

Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 5be6eff9
Loading
Loading
Loading
Loading
+1 −29
Original line number Diff line number Diff line
@@ -1716,40 +1716,12 @@ int ttm_bo_wait(struct ttm_buffer_object *bo,
}
EXPORT_SYMBOL(ttm_bo_wait);

void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo)
{
	atomic_set(&bo->reserved, 0);
	wake_up_all(&bo->event_queue);
}

int ttm_bo_block_reservation(struct ttm_buffer_object *bo, bool interruptible,
			     bool no_wait)
{
	int ret;

	while (unlikely(atomic_cmpxchg(&bo->reserved, 0, 1) != 0)) {
		if (no_wait)
			return -EBUSY;
		else if (interruptible) {
			ret = wait_event_interruptible
			    (bo->event_queue, atomic_read(&bo->reserved) == 0);
			if (unlikely(ret != 0))
				return ret;
		} else {
			wait_event(bo->event_queue,
				   atomic_read(&bo->reserved) == 0);
		}
	}
	return 0;
}

int ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait)
{
	int ret = 0;

	/*
	 * Using ttm_bo_reserve instead of ttm_bo_block_reservation
	 * makes sure the lru lists are updated.
	 * Using ttm_bo_reserve makes sure the lru lists are updated.
	 */

	ret = ttm_bo_reserve(bo, true, no_wait, false, 0);
+0 −28
Original line number Diff line number Diff line
@@ -789,34 +789,6 @@ extern void ttm_bo_unreserve(struct ttm_buffer_object *bo);
extern int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo,
				  bool interruptible);

/**
 * ttm_bo_block_reservation
 *
 * @bo: A pointer to a struct ttm_buffer_object.
 * @interruptible: Use interruptible sleep when waiting.
 * @no_wait: Don't sleep, but rather return -EBUSY.
 *
 * Block reservation for validation by simply reserving the buffer.
 * This is intended for single buffer use only without eviction,
 * and thus needs no deadlock protection.
 *
 * Returns:
 * -EBUSY: If no_wait == 1 and the buffer is already reserved.
 * -ERESTARTSYS: If interruptible == 1 and the process received a signal
 * while sleeping.
 */
extern int ttm_bo_block_reservation(struct ttm_buffer_object *bo,
				    bool interruptible, bool no_wait);

/**
 * ttm_bo_unblock_reservation
 *
 * @bo: A pointer to a struct ttm_buffer_object.
 *
 * Unblocks reservation leaving lru lists untouched.
 */
extern void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo);

/*
 * ttm_bo_util.c
 */