From 9a2d8025e34a20d93857eec0a53907eb72b7d9f8 Mon Sep 17 00:00:00 2001 From: Carter Cooper Date: Wed, 16 Sep 2020 15:28:02 -0600 Subject: [PATCH] msm: kgsl: Cleanup kgsl_iommu_probe properly on error Make sure all error paths clean up properly. Change-Id: Idbf8b9b33f576b2b22f0120413f290d1ff4e0cef Signed-off-by: Carter Cooper --- drivers/gpu/msm/kgsl_iommu.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/msm/kgsl_iommu.c b/drivers/gpu/msm/kgsl_iommu.c index 508bd1d39dfa..d03ea95e29c1 100644 --- a/drivers/gpu/msm/kgsl_iommu.c +++ b/drivers/gpu/msm/kgsl_iommu.c @@ -2379,6 +2379,8 @@ int kgsl_iommu_probe(struct kgsl_device *device) struct device_node *node; node = of_find_compatible_node(NULL, NULL, "qcom,kgsl-smmu-v2"); + if (!node) + return -ENODEV; /* Create a kmem cache for the pagetable address objects */ if (!addr_entry_cache) { @@ -2410,6 +2412,12 @@ int kgsl_iommu_probe(struct kgsl_device *device) iommu->clks = devm_kcalloc(&pdev->dev, ARRAY_SIZE(kgsl_iommu_clocks), sizeof(struct clk **), GFP_KERNEL); + if (!iommu->clks) { + platform_device_put(pdev); + ret = -ENOMEM; + goto err; + } + /* Get the clock from the KGSL device */ for (i = 0; i < ARRAY_SIZE(kgsl_iommu_clocks); i++) {