drm/ttm: return immediately in case of a signal
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>
This commit is contained in:
parent
6e58ab7ac7
commit
b2f7a61619
|
@ -979,7 +979,6 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
|
||||||
uint32_t cur_flags = 0;
|
uint32_t cur_flags = 0;
|
||||||
bool type_found = false;
|
bool type_found = false;
|
||||||
bool type_ok = false;
|
bool type_ok = false;
|
||||||
bool has_erestartsys = false;
|
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
ret = reservation_object_reserve_shared(bo->resv, 1);
|
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;
|
mem->placement = cur_flags;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (ret == -ERESTARTSYS)
|
if (ret && ret != -EBUSY)
|
||||||
has_erestartsys = true;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!type_found) {
|
if (!type_found) {
|
||||||
|
@ -1079,7 +1078,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (has_erestartsys) ? -ERESTARTSYS : -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ttm_bo_mem_space);
|
EXPORT_SYMBOL(ttm_bo_mem_space);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue