[PATCH] drm/radeon/prime: reserve/unreserve around pin

Michel Dänzer michel at daenzer.net
Tue Jun 12 09:24:27 PDT 2012


On Die, 2012-06-12 at 16:10 +0100, Dave Airlie wrote: 
> From: Dave Airlie <airlied at redhat.com>
> 
> I finally got to test this code a bit more and hit the ttm
> no reserved assert, so add the reservations around the pinning.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  drivers/gpu/drm/radeon/radeon_prime.c |   10 ++++++++--
>  1 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/radeon/radeon_prime.c b/drivers/gpu/drm/radeon/radeon_prime.c
> index 8ddab4c7..6bef46a 100644
> --- a/drivers/gpu/drm/radeon/radeon_prime.c
> +++ b/drivers/gpu/drm/radeon/radeon_prime.c
> @@ -169,11 +169,17 @@ struct dma_buf *radeon_gem_prime_export(struct drm_device *dev,
>  	struct radeon_bo *bo = gem_to_radeon_bo(obj);
>  	int ret = 0;
>  
> +	ret = radeon_bo_reserve(bo, false);
> +	if (unlikely(ret != 0))
> +		return ERR_PTR(ret);
> +
>  	/* pin buffer into GTT */
>  	ret = radeon_bo_pin(bo, RADEON_GEM_DOMAIN_GTT, NULL);
> -	if (ret)
> +	if (ret) {
> +		radeon_bo_unreserve(bo);
>  		return ERR_PTR(ret);
> -
> +	}
> +	radeon_bo_unreserve(bo);

Could just add single radeon_bo_unreserve() call right after the
radeon_bo_pin() call, but either way

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the dri-devel mailing list