diff --git a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c index 3505deebc..8e6ad7dcc 100644 --- a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c @@ -1358,8 +1358,12 @@ void gm20b_remove_acr_support(struct nvgpu_acr *acr) nvgpu_release_firmware(g, acr->acr.acr_hs_bl.hs_bl_fw); } - nvgpu_dma_unmap_free(vm, &acr->acr.acr_ucode); - nvgpu_dma_unmap_free(vm, &acr->acr.acr_hs_bl.hs_bl_ucode); + if (nvgpu_mem_is_valid(&acr->acr.acr_ucode)) { + nvgpu_dma_unmap_free(vm, &acr->acr.acr_ucode); + } + if (nvgpu_mem_is_valid(&acr->acr.acr_hs_bl.hs_bl_ucode)) { + nvgpu_dma_unmap_free(vm, &acr->acr.acr_hs_bl.hs_bl_ucode); + } } static void gm20b_acr_default_sw_init(struct gk20a *g, struct hs_acr *hs_acr) diff --git a/drivers/gpu/nvgpu/tu104/acr_tu104.c b/drivers/gpu/nvgpu/tu104/acr_tu104.c index b6b9d9e82..75055096c 100644 --- a/drivers/gpu/nvgpu/tu104/acr_tu104.c +++ b/drivers/gpu/nvgpu/tu104/acr_tu104.c @@ -120,8 +120,12 @@ static void tu104_free_hs_acr(struct gk20a *g, nvgpu_release_firmware(g, acr_type->acr_hs_bl.hs_bl_fw); } - nvgpu_dma_unmap_free(vm, &acr_type->acr_ucode); - nvgpu_dma_unmap_free(vm, &acr_type->acr_hs_bl.hs_bl_ucode); + if (nvgpu_mem_is_valid(&acr_type->acr_ucode)) { + nvgpu_dma_unmap_free(vm, &acr_type->acr_ucode); + } + if (nvgpu_mem_is_valid(&acr_type->acr_hs_bl.hs_bl_ucode)) { + nvgpu_dma_unmap_free(vm, &acr_type->acr_hs_bl.hs_bl_ucode); + } } static void tu104_remove_acr_support(struct nvgpu_acr *acr)