mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 08:26:59 +00:00
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: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
5be6eff965
commit
8cfe92d683
2 changed files with 1 additions and 57 deletions
|
@ -1716,40 +1716,12 @@ int ttm_bo_wait(struct ttm_buffer_object *bo,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ttm_bo_wait);
|
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 ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Using ttm_bo_reserve instead of ttm_bo_block_reservation
|
* Using ttm_bo_reserve makes sure the lru lists are updated.
|
||||||
* makes sure the lru lists are updated.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ret = ttm_bo_reserve(bo, true, no_wait, false, 0);
|
ret = ttm_bo_reserve(bo, true, no_wait, false, 0);
|
||||||
|
|
|
@ -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,
|
extern int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo,
|
||||||
bool interruptible);
|
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
|
* ttm_bo_util.c
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue