[PATCH] drm/amdkfd: Fix NULL pointer error for GC 11.0.1 on mGPU
Felix Kuehling
felix.kuehling at amd.com
Tue Jan 10 15:32:11 UTC 2023
Am 2023-01-05 um 14:28 schrieb Eric Huang:
> The point bo->kfd_bo is NULL for queue's write pointer BO
> when creating queue on mGPU. To avoid using the pointer
> fixes the error.
>
> Signed-off-by: Eric Huang <jinhuieric.huang at amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +-
> drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> index 9885735f1a30..d4c29e9edf34 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> @@ -2179,7 +2179,7 @@ int amdgpu_amdkfd_map_gtt_bo_to_gart(struct amdgpu_device *adev, struct amdgpu_b
> }
>
> amdgpu_amdkfd_remove_eviction_fence(
> - bo, bo->kfd_bo->process_info->eviction_fence);
> + bo, bo->vm_bo->vm->process_info->eviction_fence);
>
> amdgpu_bo_unreserve(bo);
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> index 6013f498ea1e..55c2dc48e567 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> @@ -231,7 +231,7 @@ static int add_queue_mes(struct device_queue_manager *dqm, struct queue *q,
> queue_input.wptr_addr = (uint64_t)q->properties.write_ptr;
>
> if (q->wptr_bo) {
> - wptr_addr_off = (uint64_t)q->properties.write_ptr - (uint64_t)q->wptr_bo->kfd_bo->va;
> + wptr_addr_off = (uint64_t)q->properties.write_ptr & (PAGE_SIZE - 1);
> queue_input.wptr_mc_addr = ((uint64_t)q->wptr_bo->tbo.resource->start << PAGE_SHIFT) + wptr_addr_off;
> }
>
More information about the amd-gfx
mailing list