提交 a9dbfff1 编写于 作者: M Maarten Lankhorst 提交者: Dave Airlie

drm/ttm: add ttm_bo_is_reserved

Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: NThomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: NDave Airlie <airlied@redhat.com>
上级 c4a56750
...@@ -162,9 +162,9 @@ int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo, bool interruptible) ...@@ -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) ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册