drm/ttm: return immediately in case of a signal
authorChristian König <christian.koenig@amd.com>
Mon, 13 May 2019 13:36:08 +0000 (15:36 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 31 May 2019 15:39:34 +0000 (10:39 -0500)
When a signal arrives we should return immediately for
handling it and not try other placements first.

Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Chunming Zhou <david1.zhou@amd.com>
Tested-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/ttm/ttm_bo.c

index 06bbcd2679b29c534bccc9adf8affb1c973cdd33..7b59e5ecde7fea29d504b3d02788a61d8c566b79 100644 (file)
@@ -979,7 +979,6 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
        uint32_t cur_flags = 0;
        bool type_found = false;
        bool type_ok = false;
-       bool has_erestartsys = false;
        int i, ret;
 
        ret = reservation_object_reserve_shared(bo->resv, 1);
@@ -1070,8 +1069,8 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
                        mem->placement = cur_flags;
                        return 0;
                }
-               if (ret == -ERESTARTSYS)
-                       has_erestartsys = true;
+               if (ret && ret != -EBUSY)
+                       return ret;
        }
 
        if (!type_found) {
@@ -1079,7 +1078,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
                return -EINVAL;
        }
 
-       return (has_erestartsys) ? -ERESTARTSYS : -ENOMEM;
+       return -ENOMEM;
 }
 EXPORT_SYMBOL(ttm_bo_mem_space);