iommu/mediatek-v1: Fix an error handling path in mtk_iommu_v1_probe()
[ Upstream commit142e821f68] A clk, prepared and enabled in mtk_iommu_v1_hw_init(), is not released in the error handling path of mtk_iommu_v1_probe(). Add the corresponding clk_disable_unprepare(), as already done in the remove function. Fixes:b17336c55d("iommu/mediatek: add support for mtk iommu generation one HW") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Reviewed-by: Yong Wu <yong.wu@mediatek.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> Link: https://lore.kernel.org/r/593e7b7d97c6e064b29716b091a9d4fd122241fb.1671473163.git.christophe.jaillet@wanadoo.fr Signed-off-by: Joerg Roedel <jroedel@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
cf38e76241
commit
caaea2ab6b
@@ -618,7 +618,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
|
|||||||
ret = iommu_device_sysfs_add(&data->iommu, &pdev->dev, NULL,
|
ret = iommu_device_sysfs_add(&data->iommu, &pdev->dev, NULL,
|
||||||
dev_name(&pdev->dev));
|
dev_name(&pdev->dev));
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
goto out_clk_unprepare;
|
||||||
|
|
||||||
iommu_device_set_ops(&data->iommu, &mtk_iommu_ops);
|
iommu_device_set_ops(&data->iommu, &mtk_iommu_ops);
|
||||||
|
|
||||||
@@ -643,6 +643,8 @@ out_dev_unreg:
|
|||||||
iommu_device_unregister(&data->iommu);
|
iommu_device_unregister(&data->iommu);
|
||||||
out_sysfs_remove:
|
out_sysfs_remove:
|
||||||
iommu_device_sysfs_remove(&data->iommu);
|
iommu_device_sysfs_remove(&data->iommu);
|
||||||
|
out_clk_unprepare:
|
||||||
|
clk_disable_unprepare(data->bclk);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user