drm/amdgpu: fix potential memory leak during navi12 deinitialization
Navi12 HDCP & DTM deinitialization needs continue to free bo if already created though initialized flag is not set. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Jiawei Gu <Jiawei.Gu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
4b6b7437b1
commit
0d232dada3
|
@ -1315,8 +1315,12 @@ static int psp_hdcp_terminate(struct psp_context *psp)
|
|||
if (amdgpu_sriov_vf(psp->adev))
|
||||
return 0;
|
||||
|
||||
if (!psp->hdcp_context.hdcp_initialized)
|
||||
return 0;
|
||||
if (!psp->hdcp_context.hdcp_initialized) {
|
||||
if (psp->hdcp_context.hdcp_shared_buf)
|
||||
goto out;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = psp_hdcp_unload(psp);
|
||||
if (ret)
|
||||
|
@ -1324,6 +1328,7 @@ static int psp_hdcp_terminate(struct psp_context *psp)
|
|||
|
||||
psp->hdcp_context.hdcp_initialized = false;
|
||||
|
||||
out:
|
||||
/* free hdcp shared memory */
|
||||
amdgpu_bo_free_kernel(&psp->hdcp_context.hdcp_shared_bo,
|
||||
&psp->hdcp_context.hdcp_shared_mc_addr,
|
||||
|
@ -1462,8 +1467,12 @@ static int psp_dtm_terminate(struct psp_context *psp)
|
|||
if (amdgpu_sriov_vf(psp->adev))
|
||||
return 0;
|
||||
|
||||
if (!psp->dtm_context.dtm_initialized)
|
||||
return 0;
|
||||
if (!psp->dtm_context.dtm_initialized) {
|
||||
if (psp->dtm_context.dtm_shared_buf)
|
||||
goto out;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = psp_dtm_unload(psp);
|
||||
if (ret)
|
||||
|
@ -1471,6 +1480,7 @@ static int psp_dtm_terminate(struct psp_context *psp)
|
|||
|
||||
psp->dtm_context.dtm_initialized = false;
|
||||
|
||||
out:
|
||||
/* free hdcp shared memory */
|
||||
amdgpu_bo_free_kernel(&psp->dtm_context.dtm_shared_bo,
|
||||
&psp->dtm_context.dtm_shared_mc_addr,
|
||||
|
|
Loading…
Reference in New Issue