[PATCH 8/9] drm/amdgpu/sriov:fix memory leak in psp_load_fw
Christian König
ckoenig.leichtzumerken at gmail.com
Thu Oct 26 07:21:26 UTC 2017
Am 25.10.2017 um 11:22 schrieb Monk Liu:
> for SR-IOV when doing gpu reset this routine shouldn't do
> resource allocating otherwise memory leak
Can't judge if this patch is correct or not, but fixing the whitespaces
should be a separate patch.
Christian.
>
> Change-Id: I25da3a5b475196c75c7e639adc40751754625968
> Signed-off-by: Monk Liu <Monk.Liu at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 20 ++++++++++++--------
> 1 file changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> index 76f531b..2157d45 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> @@ -334,23 +334,26 @@ static int psp_load_fw(struct amdgpu_device *adev)
> int ret;
> struct psp_context *psp = &adev->psp;
>
> + if (amdgpu_sriov_vf(adev) && adev->in_gpu_reset != 0)
> + goto skip_memalloc;
> +
> psp->cmd = kzalloc(sizeof(struct psp_gfx_cmd_resp), GFP_KERNEL);
> if (!psp->cmd)
> return -ENOMEM;
>
> ret = amdgpu_bo_create_kernel(adev, PSP_1_MEG, PSP_1_MEG,
> - AMDGPU_GEM_DOMAIN_GTT,
> - &psp->fw_pri_bo,
> - &psp->fw_pri_mc_addr,
> - &psp->fw_pri_buf);
> + AMDGPU_GEM_DOMAIN_GTT,
> + &psp->fw_pri_bo,
> + &psp->fw_pri_mc_addr,
> + &psp->fw_pri_buf);
> if (ret)
> goto failed;
>
> ret = amdgpu_bo_create_kernel(adev, PSP_FENCE_BUFFER_SIZE, PAGE_SIZE,
> - AMDGPU_GEM_DOMAIN_VRAM,
> - &psp->fence_buf_bo,
> - &psp->fence_buf_mc_addr,
> - &psp->fence_buf);
> + AMDGPU_GEM_DOMAIN_VRAM,
> + &psp->fence_buf_bo,
> + &psp->fence_buf_mc_addr,
> + &psp->fence_buf);
> if (ret)
> goto failed_mem2;
>
> @@ -375,6 +378,7 @@ static int psp_load_fw(struct amdgpu_device *adev)
> if (ret)
> goto failed_mem;
>
> +skip_memalloc:
> ret = psp_hw_start(psp);
> if (ret)
> goto failed_mem;
More information about the amd-gfx
mailing list