[PATCH] drm/amdgpu: fix potential memory leak during navi12 deinitialization
Alex Deucher
alexdeucher at gmail.com
Mon Jan 4 16:49:41 UTC 2021
On Thu, Dec 31, 2020 at 4:06 AM Jiawei Gu <Jiawei.Gu at amd.com> wrote:
>
> Navi12 HDCP & DTM deinitialization needs continue to free bo if already
> created though initialized flag is not set.
>
> Signed-off-by: Jiawei Gu <Jiawei.Gu at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> index b44b46dd60f2..4956fbd512d9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> @@ -1316,8 +1316,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)
> @@ -1325,6 +1329,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,
> @@ -1463,8 +1468,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)
> @@ -1472,6 +1481,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,
> --
> 2.17.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list