From: Jingwen Chen Date: Tue, 14 Dec 2021 03:31:16 +0000 (+0800) Subject: drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV X-Git-Tag: accepted/tizen/unified/20230118.172025~3157 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8662d0c6a36807093aed34b17b930484fd4bf22f;p=platform%2Fkernel%2Flinux-rpi.git drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV [ Upstream commit 85dfc1d692c9434c37842e610be37cd4ae4e0081 ] [Why] psp tmr bo will be pinned during loading amdgpu and reset in SRIOV while only unpinned in unload amdgpu [How] add amdgpu_in_reset and sriov judgement to skip pin bo v2: fix wrong judgement Signed-off-by: Jingwen Chen Reviewed-by: Horace Chen Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c index 9b41cb8..86e2090 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -2207,12 +2207,16 @@ static int psp_hw_start(struct psp_context *psp) return ret; } + if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev)) + goto skip_pin_bo; + ret = psp_tmr_init(psp); if (ret) { DRM_ERROR("PSP tmr init failed!\n"); return ret; } +skip_pin_bo: /* * For ASICs with DF Cstate management centralized * to PMFW, TMR setup should be performed after PMFW