diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c index 75d5ceaa53c6..63875761dfac 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c @@ -253,7 +253,7 @@ int amdgpu_userq_input_va_validate(struct amdgpu_device *adev, return -EINVAL; va_map = amdgpu_vm_bo_lookup_mapping(vm, start_addr); - if (!va_map) + if (!va_map || !va_map->bo_va->base.bo) return -EINVAL; /* Lookup guarantees start_addr is mapped; ensure full span is covered. */ diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c index d90ac726f38c..c1257f530e9a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c @@ -384,7 +384,7 @@ static int amdgpu_userq_fence_read_wptr(struct amdgpu_device *adev, goto lock_error; mapping = amdgpu_vm_bo_lookup_mapping(queue->vm, addr); - if (!mapping) { + if (!mapping || !mapping->bo_va->base.bo) { ret = -EINVAL; goto lock_error; } diff --git a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c index 1b06a4618125..e6c167a39d44 100644 --- a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c +++ b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c @@ -54,7 +54,7 @@ mes_userq_create_wptr_mapping(struct amdgpu_device *adev, goto fail_lock; wptr_mapping = amdgpu_vm_bo_lookup_mapping(vm, wptr); - if (!wptr_mapping) { + if (!wptr_mapping || !wptr_mapping->bo_va->base.bo) { ret = -EINVAL; goto fail_lock; }