59,24 → 59,10 |
* |
* Returns: |
* -EBUSY: buffer is busy and @no_wait is true |
* -ERESTART: A wait for the buffer to become unreserved was interrupted by |
* -ERESTARTSYS: A wait for the buffer to become unreserved was interrupted by |
* a signal. Release all buffer reservations and return to user-space. |
*/ |
static inline int radeon_bo_reserve(struct radeon_bo *bo, bool no_wait) |
{ |
int r; |
|
retry: |
r = ttm_bo_reserve(&bo->tbo, true, no_wait, false, 0); |
if (unlikely(r != 0)) { |
if (r == -ERESTART) |
goto retry; |
dev_err(bo->rdev->dev, "%p reserve failed\n", bo); |
return r; |
} |
return 0; |
} |
|
static inline void radeon_bo_unreserve(struct radeon_bo *bo) |
{ |
ttm_bo_unreserve(&bo->tbo); |
125,11 → 111,9 |
{ |
int r; |
|
retry: |
r = ttm_bo_reserve(&bo->tbo, true, no_wait, false, 0); |
if (unlikely(r != 0)) { |
if (r == -ERESTART) |
goto retry; |
if (r != -ERESTARTSYS) |
dev_err(bo->rdev->dev, "%p reserve failed for wait\n", bo); |
return r; |
} |
140,8 → 124,6 |
r = ttm_bo_wait(&bo->tbo, true, true, no_wait); |
spin_unlock(&bo->tbo.lock); |
ttm_bo_unreserve(&bo->tbo); |
if (unlikely(r == -ERESTART)) |
goto retry; |
return r; |
} |
|