From 5fc8a2d9f01c952d77b70e3ff432bd947f2861f8 Mon Sep 17 00:00:00 2001 From: Jordan Crouse Date: Wed, 11 Dec 2019 11:46:42 -0700 Subject: [PATCH] msm: kgsl: Properly handle attach error for secure pagetable Properly handle error paths in _init_secure_pt. Change-Id: Ic0dedbadf297579a2cfbab6e40f2aac4752cca94 Signed-off-by: Deepak Kumar Signed-off-by: Jordan Crouse --- drivers/gpu/msm/kgsl_iommu.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/msm/kgsl_iommu.c b/drivers/gpu/msm/kgsl_iommu.c index fec33d6e49b9..91da31c3839f 100644 --- a/drivers/gpu/msm/kgsl_iommu.c +++ b/drivers/gpu/msm/kgsl_iommu.c @@ -1249,12 +1249,17 @@ static int _init_secure_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt) if (ret) { dev_err(device->dev, "set DOMAIN_ATTR_SECURE_VMID failed: %d\n", ret); - goto done; + _free_pt(ctx, pt); + return ret; } _enable_gpuhtw_llc(mmu, iommu_pt->domain); ret = _attach_pt(iommu_pt, ctx); + if (ret) { + _free_pt(ctx, pt); + return ret; + } iommu_set_fault_handler(iommu_pt->domain, kgsl_iommu_fault_handler, pt); @@ -1265,10 +1270,7 @@ static int _init_secure_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt) kgsl_iommu_map_secure_global(mmu, &md->memdesc); } -done: - if (ret) - _free_pt(ctx, pt); - return ret; + return 0; } #else static int _init_secure_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt)