iommu/tegra: smmu: Remove unnecessary cleanups with devm_*()
authorHiroshi Doyu <hdoyu@nvidia.com>
Mon, 25 Jun 2012 11:23:57 +0000 (14:23 +0300)
committerJoerg Roedel <joerg.roedel@amd.com>
Mon, 25 Jun 2012 11:50:44 +0000 (13:50 +0200)
Remove unnecessary cleanup procedures with devm_*() functions.

Signed-off-by: Hiroshi DOYU <hdoyu@nvidia.com>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
drivers/iommu/tegra-smmu.c

index 98fcc7268eafe816abcbaa3f76b273536fb76859..cc6aba45e49aa68b7ad7be5a59c6859d82aa3457 100644 (file)
@@ -971,51 +971,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;
 }