drm/amd/amdgpu: Fix csb.bo pin_count leak on gfx 9
authorYuBiao Wang <YuBiao.Wang@amd.com>
Thu, 4 Nov 2021 09:32:30 +0000 (17:32 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 5 Nov 2021 18:11:32 +0000 (14:11 -0400)
[Why]
csb bo is not unpinned in gfx 9. It will lead to pin_count leak on
driver unload.

[How]
Call bo_free_kernel corresponding to bo_create_kernel in
gfx_rlc_init_csb. This will also unify the code path with other gfx
versions.

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>
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

index 7f944bb..be803eb 100644 (file)
@@ -2462,7 +2462,9 @@ static int gfx_v9_0_sw_fini(void *handle)
        amdgpu_gfx_kiq_fini(adev);
 
        gfx_v9_0_mec_fini(adev);
-       amdgpu_bo_unref(&adev->gfx.rlc.clear_state_obj);
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj,
+                               &adev->gfx.rlc.clear_state_gpu_addr,
+                               (void **)&adev->gfx.rlc.cs_ptr);
        if (adev->flags & AMD_IS_APU) {
                amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj,
                                &adev->gfx.rlc.cp_table_gpu_addr,