From 4e7c9c3008e8bd354afa471e1d97ba88b12194da Mon Sep 17 00:00:00 2001 From: Thomas Fleury Date: Tue, 24 Oct 2017 10:06:10 -0700 Subject: gpu: nvgpu: fix dma memory leak in remove pmu support Add missing unmap and free for seq_buf and ucode (acr & hsbl). JIRA EVLR-1959 Bug 200352009 Change-Id: I3e422ce07228b59554ab1407c29e45c70479134d Signed-off-by: Thomas Fleury Reviewed-on: https://git-master.nvidia.com/r/1586576 Reviewed-by: svc-mobile-coverity GVS: Gerrit_Virtual_Submit Reviewed-by: David Martinez Nieto Reviewed-by: Richard Zhao Reviewed-by: Alex Waterman Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/pmu/pmu_fw.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'drivers/gpu/nvgpu/common/pmu/pmu_fw.c') diff --git a/drivers/gpu/nvgpu/common/pmu/pmu_fw.c b/drivers/gpu/nvgpu/common/pmu/pmu_fw.c index 8c4e091d..20eadb50 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu_fw.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu_fw.c @@ -2226,6 +2226,8 @@ static int nvgpu_init_pmu_fw_ver_ops(struct nvgpu_pmu *pmu) static void nvgpu_remove_pmu_support(struct nvgpu_pmu *pmu) { struct gk20a *g = gk20a_from_pmu(pmu); + struct mm_gk20a *mm = &g->mm; + struct vm_gk20a *vm = mm->pmu.vm; nvgpu_log_fn(g, " "); @@ -2247,6 +2249,11 @@ static void nvgpu_remove_pmu_support(struct nvgpu_pmu *pmu) if (g->acr.hsbl_fw) nvgpu_release_firmware(g, g->acr.hsbl_fw); + nvgpu_dma_unmap_free(vm, &g->acr.acr_ucode); + nvgpu_dma_unmap_free(vm, &g->acr.hsbl_ucode); + + nvgpu_dma_unmap_free(vm, &pmu->seq_buf); + nvgpu_mutex_destroy(&pmu->elpg_mutex); nvgpu_mutex_destroy(&pmu->pg_mutex); nvgpu_mutex_destroy(&pmu->isr_mutex); -- cgit v1.2.2