mirror of https://gitee.com/openkylin/linux.git
drm/ttm: add ttm_bo_is_reserved
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
c4a56750ec
commit
a9dbfff1cb
|
@ -162,9 +162,9 @@ int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo, bool interruptible)
|
||||||
{
|
{
|
||||||
if (interruptible) {
|
if (interruptible) {
|
||||||
return wait_event_interruptible(bo->event_queue,
|
return wait_event_interruptible(bo->event_queue,
|
||||||
atomic_read(&bo->reserved) == 0);
|
!ttm_bo_is_reserved(bo));
|
||||||
} else {
|
} else {
|
||||||
wait_event(bo->event_queue, atomic_read(&bo->reserved) == 0);
|
wait_event(bo->event_queue, !ttm_bo_is_reserved(bo));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,7 @@ void ttm_bo_add_to_lru(struct ttm_buffer_object *bo)
|
||||||
struct ttm_bo_device *bdev = bo->bdev;
|
struct ttm_bo_device *bdev = bo->bdev;
|
||||||
struct ttm_mem_type_manager *man;
|
struct ttm_mem_type_manager *man;
|
||||||
|
|
||||||
BUG_ON(!atomic_read(&bo->reserved));
|
BUG_ON(!ttm_bo_is_reserved(bo));
|
||||||
|
|
||||||
if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {
|
if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {
|
||||||
|
|
||||||
|
@ -756,7 +756,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
BUG_ON(!atomic_read(&bo->reserved));
|
BUG_ON(!ttm_bo_is_reserved(bo));
|
||||||
|
|
||||||
evict_mem = bo->mem;
|
evict_mem = bo->mem;
|
||||||
evict_mem.mm_node = NULL;
|
evict_mem.mm_node = NULL;
|
||||||
|
@ -1073,7 +1073,7 @@ int ttm_bo_move_buffer(struct ttm_buffer_object *bo,
|
||||||
struct ttm_mem_reg mem;
|
struct ttm_mem_reg mem;
|
||||||
struct ttm_bo_device *bdev = bo->bdev;
|
struct ttm_bo_device *bdev = bo->bdev;
|
||||||
|
|
||||||
BUG_ON(!atomic_read(&bo->reserved));
|
BUG_ON(!ttm_bo_is_reserved(bo));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FIXME: It's possible to pipeline buffer moves.
|
* FIXME: It's possible to pipeline buffer moves.
|
||||||
|
@ -1130,7 +1130,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo,
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
BUG_ON(!atomic_read(&bo->reserved));
|
BUG_ON(!ttm_bo_is_reserved(bo));
|
||||||
/* Check that range is valid */
|
/* Check that range is valid */
|
||||||
if (placement->lpfn || placement->fpfn)
|
if (placement->lpfn || placement->fpfn)
|
||||||
if (placement->fpfn > placement->lpfn ||
|
if (placement->fpfn > placement->lpfn ||
|
||||||
|
|
|
@ -736,4 +736,18 @@ extern ssize_t ttm_bo_io(struct ttm_bo_device *bdev, struct file *filp,
|
||||||
|
|
||||||
extern void ttm_bo_swapout_all(struct ttm_bo_device *bdev);
|
extern void ttm_bo_swapout_all(struct ttm_bo_device *bdev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ttm_bo_is_reserved - return an indication if a ttm buffer object is reserved
|
||||||
|
*
|
||||||
|
* @bo: The buffer object to check.
|
||||||
|
*
|
||||||
|
* This function returns an indication if a bo is reserved or not, and should
|
||||||
|
* only be used to print an error when it is not from incorrect api usage, since
|
||||||
|
* there's no guarantee that it is the caller that is holding the reservation.
|
||||||
|
*/
|
||||||
|
static inline bool ttm_bo_is_reserved(struct ttm_buffer_object *bo)
|
||||||
|
{
|
||||||
|
return atomic_read(&bo->reserved);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue