On 10/12/2012 04:58 PM, Maarten Lankhorst wrote:
Signed-off-by: Maarten Lankhorst maarten.lankhorst@canonical.com
drivers/gpu/drm/ttm/ttm_bo.c | 12 ++++++------ include/drm/ttm/ttm_bo_api.h | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index be1148e..d9d8541 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -161,9 +161,9 @@ int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo, bool interruptible) { if (interruptible) { return wait_event_interruptible(bo->event_queue,
atomic_read(&bo->reserved) == 0);
} else {!ttm_bo_is_reserved(bo));
wait_event(bo->event_queue, atomic_read(&bo->reserved) == 0);
return 0; } }wait_event(bo->event_queue, !ttm_bo_is_reserved(bo));
@@ -174,7 +174,7 @@ void ttm_bo_add_to_lru(struct ttm_buffer_object *bo) struct ttm_bo_device *bdev = bo->bdev; 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)) {
@@ -748,7 +748,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible, goto out; }
- BUG_ON(!atomic_read(&bo->reserved));
BUG_ON(!ttm_bo_is_reserved(bo));
evict_mem = bo->mem; evict_mem.mm_node = NULL;
@@ -1058,7 +1058,7 @@ int ttm_bo_move_buffer(struct ttm_buffer_object *bo, struct ttm_mem_reg mem; 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.
@@ -1115,7 +1115,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo, { int ret;
- BUG_ON(!atomic_read(&bo->reserved));
- BUG_ON(!ttm_bo_is_reserved(bo)); /* Check that range is valid */ if (placement->lpfn || placement->fpfn) if (placement->fpfn > placement->lpfn ||
diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h index 9654451..1d71f6b 100644 --- a/include/drm/ttm/ttm_bo_api.h +++ b/include/drm/ttm/ttm_bo_api.h @@ -705,4 +705,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);
+/**
- 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
This looks good, although for clarity we should add in the comments that if the caller is holding the reservation, the function is guaranteed to return true.
Otherwise Reviewed-by: Thomas Hellstrom thellstrom@vmware.com
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel