Commit cca7ecb3 authored by Alex Xie's avatar Alex Xie Committed by Alex Deucher

drm/amdgpu: Fix use of interruptible waiting

Either in cgs functions or for callers of cgs functions:
1. The signal interrupt can affect the expected behaviour
2. There is no good mechanism to handle the corresponding error
3. There is no chance of deadlock in these single BO waiting
4. There is no clear benefit for interruptible waiting
5. Future caller of these functions might have same issue.
Signed-off-by: default avatarAlex Xie <AlexBin.Xie@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a6bef67e
...@@ -89,7 +89,7 @@ static int amdgpu_cgs_gmap_kmem(struct cgs_device *cgs_device, void *kmem, ...@@ -89,7 +89,7 @@ static int amdgpu_cgs_gmap_kmem(struct cgs_device *cgs_device, void *kmem,
AMDGPU_GEM_DOMAIN_GTT, 0, sg, NULL, &bo); AMDGPU_GEM_DOMAIN_GTT, 0, sg, NULL, &bo);
if (ret) if (ret)
return ret; return ret;
ret = amdgpu_bo_reserve(bo, false); ret = amdgpu_bo_reserve(bo, true);
if (unlikely(ret != 0)) if (unlikely(ret != 0))
return ret; return ret;
...@@ -107,7 +107,7 @@ static int amdgpu_cgs_gunmap_kmem(struct cgs_device *cgs_device, cgs_handle_t km ...@@ -107,7 +107,7 @@ static int amdgpu_cgs_gunmap_kmem(struct cgs_device *cgs_device, cgs_handle_t km
struct amdgpu_bo *obj = (struct amdgpu_bo *)kmem_handle; struct amdgpu_bo *obj = (struct amdgpu_bo *)kmem_handle;
if (obj) { if (obj) {
int r = amdgpu_bo_reserve(obj, false); int r = amdgpu_bo_reserve(obj, true);
if (likely(r == 0)) { if (likely(r == 0)) {
amdgpu_bo_unpin(obj); amdgpu_bo_unpin(obj);
amdgpu_bo_unreserve(obj); amdgpu_bo_unreserve(obj);
...@@ -215,7 +215,7 @@ static int amdgpu_cgs_free_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t h ...@@ -215,7 +215,7 @@ static int amdgpu_cgs_free_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t h
struct amdgpu_bo *obj = (struct amdgpu_bo *)handle; struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
if (obj) { if (obj) {
int r = amdgpu_bo_reserve(obj, false); int r = amdgpu_bo_reserve(obj, true);
if (likely(r == 0)) { if (likely(r == 0)) {
amdgpu_bo_kunmap(obj); amdgpu_bo_kunmap(obj);
amdgpu_bo_unpin(obj); amdgpu_bo_unpin(obj);
...@@ -239,7 +239,7 @@ static int amdgpu_cgs_gmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t h ...@@ -239,7 +239,7 @@ static int amdgpu_cgs_gmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t h
min_offset = obj->placements[0].fpfn << PAGE_SHIFT; min_offset = obj->placements[0].fpfn << PAGE_SHIFT;
max_offset = obj->placements[0].lpfn << PAGE_SHIFT; max_offset = obj->placements[0].lpfn << PAGE_SHIFT;
r = amdgpu_bo_reserve(obj, false); r = amdgpu_bo_reserve(obj, true);
if (unlikely(r != 0)) if (unlikely(r != 0))
return r; return r;
r = amdgpu_bo_pin_restricted(obj, obj->prefered_domains, r = amdgpu_bo_pin_restricted(obj, obj->prefered_domains,
...@@ -252,7 +252,7 @@ static int amdgpu_cgs_gunmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t ...@@ -252,7 +252,7 @@ static int amdgpu_cgs_gunmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t
{ {
int r; int r;
struct amdgpu_bo *obj = (struct amdgpu_bo *)handle; struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
r = amdgpu_bo_reserve(obj, false); r = amdgpu_bo_reserve(obj, true);
if (unlikely(r != 0)) if (unlikely(r != 0))
return r; return r;
r = amdgpu_bo_unpin(obj); r = amdgpu_bo_unpin(obj);
...@@ -265,7 +265,7 @@ static int amdgpu_cgs_kmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t h ...@@ -265,7 +265,7 @@ static int amdgpu_cgs_kmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t h
{ {
int r; int r;
struct amdgpu_bo *obj = (struct amdgpu_bo *)handle; struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
r = amdgpu_bo_reserve(obj, false); r = amdgpu_bo_reserve(obj, true);
if (unlikely(r != 0)) if (unlikely(r != 0))
return r; return r;
r = amdgpu_bo_kmap(obj, map); r = amdgpu_bo_kmap(obj, map);
...@@ -277,7 +277,7 @@ static int amdgpu_cgs_kunmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t ...@@ -277,7 +277,7 @@ static int amdgpu_cgs_kunmap_gpu_mem(struct cgs_device *cgs_device, cgs_handle_t
{ {
int r; int r;
struct amdgpu_bo *obj = (struct amdgpu_bo *)handle; struct amdgpu_bo *obj = (struct amdgpu_bo *)handle;
r = amdgpu_bo_reserve(obj, false); r = amdgpu_bo_reserve(obj, true);
if (unlikely(r != 0)) if (unlikely(r != 0))
return r; return r;
amdgpu_bo_kunmap(obj); amdgpu_bo_kunmap(obj);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment