drm/amdkfd: Use gpu_offset for user queue's wptr
authorYuBiao Wang <YuBiao.Wang@amd.com>
Fri, 15 Sep 2023 02:47:50 +0000 (10:47 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 20 Sep 2023 21:30:42 +0000 (17:30 -0400)
Directly use tbo's start address will miss the domain start offset. Need
to use gpu_offset instead.

Signed-off-by: YuBiao Wang <YuBiao.Wang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c

index 8a6cb41444a4767a1f5270d49af93ec8722269b6..0d3d538b64ebc319d705bcdde28ab9179c3575b4 100644 (file)
@@ -216,7 +216,7 @@ static int add_queue_mes(struct device_queue_manager *dqm, struct queue *q,
 
        if (q->wptr_bo) {
                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;
+               queue_input.wptr_mc_addr = amdgpu_bo_gpu_offset(q->wptr_bo) + wptr_addr_off;
        }
 
        queue_input.is_kfd_process = 1;