Commit 8c45b319 authored by Philip Yang's avatar Philip Yang Committed by Alex Deucher
Browse files

drm/amdkfd: Skip handle mapping SVM range with no GPU access



If the SVM range has no GPU access nor access-in-place attribute,
validate and map to GPU should skip the range.

Add NULL pointer check if find_first_bit(ctx->bitmap, MAX_GPU_INSTANCE)
returns MAX_GPU_INSTANCE as gpuidx if ctx->bitmap is empty.

Signed-off-by: default avatarPhilip Yang <Philip.Yang@amd.com>
Reviewed-by: default avatarAlex Sierra <alex.sierra@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c4cde735
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1522,6 +1522,8 @@ static void *kfd_svm_page_owner(struct kfd_process *p, int32_t gpuidx)
	struct kfd_process_device *pdd;

	pdd = kfd_process_device_from_gpuidx(p, gpuidx);
	if (!pdd)
		return NULL;

	return SVM_ADEV_PGMAP_OWNER(pdd->dev->adev);
}
@@ -1596,12 +1598,12 @@ static int svm_range_validate_and_map(struct mm_struct *mm,
	}

	if (bitmap_empty(ctx->bitmap, MAX_GPU_INSTANCE)) {
		if (!prange->mapped_to_gpu) {
		bitmap_copy(ctx->bitmap, prange->bitmap_access, MAX_GPU_INSTANCE);
		if (!prange->mapped_to_gpu ||
		    bitmap_empty(ctx->bitmap, MAX_GPU_INSTANCE)) {
			r = 0;
			goto free_ctx;
		}

		bitmap_copy(ctx->bitmap, prange->bitmap_access, MAX_GPU_INSTANCE);
	}

	if (prange->actual_loc && !prange->ttm_res) {