drm/amdgpu: further mitigate workaround for i915
authorChristian König <christian.koenig@amd.com>
Tue, 20 Feb 2018 18:51:02 +0000 (19:51 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 7 Mar 2018 21:10:12 +0000 (16:10 -0500)
Disable the workaround on imported BOs as well.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexdeucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c

index 8ce74a1d9966c0eccfbf39e0e63604a330e62b62..fb66b45548d35b77108e86d82f35138319070042 100644 (file)
@@ -107,12 +107,18 @@ amdgpu_gem_prime_import_sg_table(struct drm_device *dev,
        ww_mutex_lock(&resv->lock, NULL);
        ret = amdgpu_bo_create(adev, attach->dmabuf->size, PAGE_SIZE, false,
                               AMDGPU_GEM_DOMAIN_GTT, 0, sg, resv, &bo);
-       ww_mutex_unlock(&resv->lock);
        if (ret)
-               return ERR_PTR(ret);
+               goto error;
+
+       if (attach->dmabuf->ops != &amdgpu_dmabuf_ops)
+               bo->prime_shared_count = 1;
 
-       bo->prime_shared_count = 1;
+       ww_mutex_unlock(&resv->lock);
        return &bo->gem_base;
+
+error:
+       ww_mutex_unlock(&resv->lock);
+       return ERR_PTR(ret);
 }
 
 static int amdgpu_gem_map_attach(struct dma_buf *dma_buf,