Messages in this thread Patch in this message | | | From | Miaoqian Lin <> | Subject | [RESEND PATCH v2] iommu/omap: Fix missing put_device() call in omap_iommu_probe_device | Date | Thu, 2 Jun 2022 14:29:26 +0400 |
| |
The reference taken by 'of_find_device_by_node()' must be released when not needed anymore. Add the corresponding 'put_device()' in the error handling path and the regular path.
Fixes: ede1c2e7d4dc ("iommu/omap: Store iommu_dev pointer in arch_data") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- changes in v2: - move put_device() before of_node_put(). - add put_device() in the regular path.
v1 Link: https://lore.kernel.org/r/20220107080428.10873-1-linmq006@gmail.com v2 Link: https://lore.kernel.org/r/20220301063326.18120-1-linmq006@gmail.com --- drivers/iommu/omap-iommu.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c index d9cf2820c02e..58f3efdac3f7 100644 --- a/drivers/iommu/omap-iommu.c +++ b/drivers/iommu/omap-iommu.c @@ -1683,6 +1683,7 @@ static struct iommu_device *omap_iommu_probe_device(struct device *dev) oiommu = platform_get_drvdata(pdev); if (!oiommu) { + put_device(&pdev->dev); of_node_put(np); kfree(arch_data); return ERR_PTR(-EINVAL); @@ -1691,6 +1692,7 @@ static struct iommu_device *omap_iommu_probe_device(struct device *dev) tmp->iommu_dev = oiommu; tmp->dev = &pdev->dev; + put_device(&pdev->dev); of_node_put(np); } -- 2.25.1
| |