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

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
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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.
 * Returns:
 * -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.
 * -ERESTARTSYS: An interruptible sleep was interrupted by a signal.
 */
@@ -830,7 +830,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
			goto error;
	}

	ret = -ENOMEM;
	ret = -ENOSPC;
	if (!type_found) {
		pr_err(TTM_PFX "No compatible memory type found\n");
		ret = -EINVAL;
@@ -916,6 +916,9 @@ int ttm_bo_validate(struct ttm_buffer_object *bo,
		return -EINVAL;

	ret = ttm_bo_move_buffer(bo, placement, ctx);
	/* For backward compatibility with userspace */
	if (ret == -ENOSPC)
		return -ENOMEM;
	if (ret)
		return ret;