diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 5661b82d84d4..25731719c627 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -451,7 +451,7 @@ static bool amdgpu_bo_validate_size(struct amdgpu_device *adev,  	if (domain & AMDGPU_GEM_DOMAIN_GTT) {  		man = ttm_manager_type(&adev->mman.bdev, TTM_PL_TT); -		if (size < (man->size << PAGE_SHIFT)) +		if (size < man->size)  			return true;  		else  			goto fail; @@ -460,7 +460,7 @@ static bool amdgpu_bo_validate_size(struct amdgpu_device *adev,  	if (domain & AMDGPU_GEM_DOMAIN_VRAM) {  		man = ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM); -		if (size < (man->size << PAGE_SHIFT)) +		if (size < man->size)  			return true;  		else  			goto fail; @@ -575,6 +575,9 @@ int amdgpu_bo_create(struct amdgpu_device *adev,  	if (!amdgpu_bo_support_uswc(bo->flags))  		bo->flags &= ~AMDGPU_GEM_CREATE_CPU_GTT_USWC; +	if (adev->ras_enabled) +		bo->flags |= AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE; +  	bo->tbo.bdev = &adev->mman.bdev;  	if (bp->domain & (AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA |  			  AMDGPU_GEM_DOMAIN_GDS)) @@ -1303,7 +1306,8 @@ void amdgpu_bo_release_notify(struct ttm_buffer_object *bo)  	    !(abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE))  		return; -	dma_resv_lock(bo->base.resv, NULL); +	if (WARN_ON_ONCE(!dma_resv_trylock(bo->base.resv))) +		return;  	r = amdgpu_fill_buffer(abo, AMDGPU_POISON, bo->base.resv, &fence);  	if (!WARN_ON(r)) {  | 
