From: Hiroshi Doyu <[email protected]>

From: Hiroshi Doyu <[email protected]>

Remove unnecessary cleanup procedures with devm_*() functions.

Signed-off-by: Hiroshi DOYU <[email protected]>
Acked-by: Stephen Warren <[email protected]>
---
 drivers/iommu/tegra-smmu.c |   37 ++++++-------------------------------
 1 files changed, 6 insertions(+), 31 deletions(-)

diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index 5447f05..3ef7dea 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -1039,51 +1039,26 @@ static int tegra_smmu_probe(struct platform_device 
*pdev)
        spin_lock_init(&smmu->lock);
        err = smmu_setup_regs(smmu);
        if (err)
-               goto fail;
+               return err;
        platform_set_drvdata(pdev, smmu);
 
        smmu->avp_vector_page = alloc_page(GFP_KERNEL);
        if (!smmu->avp_vector_page)
-               goto fail;
+               return -ENOMEM;
 
        smmu_handle = smmu;
        return 0;
-
-fail:
-       if (smmu->avp_vector_page)
-               __free_page(smmu->avp_vector_page);
-       if (smmu && smmu->as) {
-               for (i = 0; i < smmu->num_as; i++) {
-                       if (smmu->as[i].pdir_page) {
-                               ClearPageReserved(smmu->as[i].pdir_page);
-                               __free_page(smmu->as[i].pdir_page);
-                       }
-               }
-               devm_kfree(dev, smmu->as);
-       }
-       devm_kfree(dev, smmu);
-       return err;
 }
 
 static int tegra_smmu_remove(struct platform_device *pdev)
 {
        struct smmu_device *smmu = platform_get_drvdata(pdev);
-       struct device *dev = smmu->dev;
+       int i;
 
        smmu_write(smmu, SMMU_CONFIG_DISABLE, SMMU_CONFIG);
-       platform_set_drvdata(pdev, NULL);
-       if (smmu->as) {
-               int i;
-
-               for (i = 0; i < smmu->num_as; i++)
-                       free_pdir(&smmu->as[i]);
-               devm_kfree(dev, smmu->as);
-       }
-       if (smmu->avp_vector_page)
-               __free_page(smmu->avp_vector_page);
-       if (smmu->regs)
-               devm_iounmap(dev, smmu->regs);
-       devm_kfree(dev, smmu);
+       for (i = 0; i < smmu->num_as; i++)
+               free_pdir(&smmu->as[i]);
+       __free_page(smmu->avp_vector_page);
        smmu_handle = NULL;
        return 0;
 }
-- 
1.7.5.4

_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to