diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index d94cdeff0617..ac6b074b8821 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -472,7 +472,16 @@ int amdgpu_bo_create(struct amdgpu_device *adev,  		return r;  	if (amdgpu_need_backup(adev) && (flags & AMDGPU_GEM_CREATE_SHADOW)) { +		if (!resv) { +			r = ww_mutex_lock(&(*bo_ptr)->tbo.resv->lock, NULL); +			WARN_ON(r != 0); +		} +  		r = amdgpu_bo_create_shadow(adev, size, byte_align, (*bo_ptr)); + +		if (!resv) +			ww_mutex_unlock(&(*bo_ptr)->tbo.resv->lock); +  		if (r)  			amdgpu_bo_unref(bo_ptr);  	}  | 
