amdkfd: properly free gang_ctx_bo when failed to init user queue
The destructor of a gtt bo is declared as
void amdgpu_amdkfd_free_gtt_mem(struct amdgpu_device *adev, void **mem_obj);
Which takes void** as the second parameter.
GCC allows passing void* to the function because void* can be implicitly
casted to any other types, so it can pass compiling.
However, passing this void* parameter into the function's
execution process(which expects void** and dereferencing void**)
will result in errors.
Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Fixes: fb91065851
("drm/amdkfd: Refactor queue wptr_bo GART mapping")
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
55ed2b1b50
commit
a33f7f9660
1 changed files with 1 additions and 1 deletions
|
@ -300,7 +300,7 @@ static int init_user_queue(struct process_queue_manager *pqm,
|
|||
return 0;
|
||||
|
||||
free_gang_ctx_bo:
|
||||
amdgpu_amdkfd_free_gtt_mem(dev->adev, (*q)->gang_ctx_bo);
|
||||
amdgpu_amdkfd_free_gtt_mem(dev->adev, &(*q)->gang_ctx_bo);
|
||||
cleanup:
|
||||
uninit_queue(*q);
|
||||
*q = NULL;
|
||||
|
|
Loading…
Add table
Reference in a new issue