iommu/tegra: smmu: Remove unnecessary cleanups with devm_*()
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>
This commit is contained in:
parent
a3b2491545
commit
0547c2f56e
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue