Commit 28e51267 authored by Christian König's avatar Christian König

drm/ttm: return ENOSPC from ttm_bo_mem_space v3

Only convert it to ENOMEM in ttm_bo_validate.

This allows ttm_bo_validate to distinguish between an out of memory
situation and just out of space in a placement domain.

v2: improve commit message
v3: fix kerneldoc typos
Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarZack Rusin <zack.rusin@broadcom.com>
Reviewed-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240112125158.2748-3-christian.koenig@amd.com
parent bc77bde2
...@@ -770,7 +770,7 @@ static int ttm_bo_mem_force_space(struct ttm_buffer_object *bo, ...@@ -770,7 +770,7 @@ static int ttm_bo_mem_force_space(struct ttm_buffer_object *bo,
* This function may sleep while waiting for space to become available. * This function may sleep while waiting for space to become available.
* Returns: * Returns:
* -EBUSY: No space available (only if no_wait == 1). * -EBUSY: No space available (only if no_wait == 1).
* -ENOMEM: Could not allocate memory for the buffer object, either due to * -ENOSPC: Could not allocate space for the buffer object, either due to
* fragmentation or concurrent allocators. * fragmentation or concurrent allocators.
* -ERESTARTSYS: An interruptible sleep was interrupted by a signal. * -ERESTARTSYS: An interruptible sleep was interrupted by a signal.
*/ */
...@@ -830,7 +830,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo, ...@@ -830,7 +830,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
goto error; goto error;
} }
ret = -ENOMEM; ret = -ENOSPC;
if (!type_found) { if (!type_found) {
pr_err(TTM_PFX "No compatible memory type found\n"); pr_err(TTM_PFX "No compatible memory type found\n");
ret = -EINVAL; ret = -EINVAL;
...@@ -916,6 +916,9 @@ int ttm_bo_validate(struct ttm_buffer_object *bo, ...@@ -916,6 +916,9 @@ int ttm_bo_validate(struct ttm_buffer_object *bo,
return -EINVAL; return -EINVAL;
ret = ttm_bo_move_buffer(bo, placement, ctx); ret = ttm_bo_move_buffer(bo, placement, ctx);
/* For backward compatibility with userspace */
if (ret == -ENOSPC)
return -ENOMEM;
if (ret) if (ret)
return ret; return ret;
......
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