Commit b5870691 authored by Johan Hovold's avatar Johan Hovold Committed by Joerg Roedel
Browse files

iommu/omap: fix device leaks on probe_device()



Make sure to drop the references taken to the iommu platform devices
when looking up their driver data during probe_device().

Note that the arch data device pointer added by commit 604629bc
("iommu/omap: add support for late attachment of iommu devices") has
never been used. Remove it to underline that the references are not
needed.

Fixes: 9d5018de ("iommu/omap: Add support to program multiple iommus")
Fixes: 7d682774 ("iommu/omap: Fix iommu archdata name for DT-based devices")
Cc: stable@vger.kernel.org	# 3.18
Cc: Suman Anna <s-anna@ti.com>
Acked-by: default avatarRobin Murphy <robin.murphy@arm.com>
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
parent ab31cf04
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1675,6 +1675,7 @@ static struct iommu_device *omap_iommu_probe_device(struct device *dev)
		}

		oiommu = platform_get_drvdata(pdev);
		put_device(&pdev->dev);
		if (!oiommu) {
			of_node_put(np);
			kfree(arch_data);
@@ -1682,7 +1683,6 @@ static struct iommu_device *omap_iommu_probe_device(struct device *dev)
		}

		tmp->iommu_dev = oiommu;
		tmp->dev = &pdev->dev;

		of_node_put(np);
	}
+0 −2
Original line number Diff line number Diff line
@@ -88,7 +88,6 @@ struct omap_iommu {
/**
 * struct omap_iommu_arch_data - omap iommu private data
 * @iommu_dev: handle of the OMAP iommu device
 * @dev: handle of the iommu device
 *
 * This is an omap iommu private data object, which binds an iommu user
 * to its iommu device. This object should be placed at the iommu user's
@@ -97,7 +96,6 @@ struct omap_iommu {
 */
struct omap_iommu_arch_data {
	struct omap_iommu *iommu_dev;
	struct device *dev;
};

struct cr_regs {