On Thu, Oct 09, 2025 at 09:56:18AM +0200, Thierry Reding wrote:
On Tue, Oct 07, 2025 at 11:43:27AM +0200, Johan Hovold wrote:
@@ -830,10 +830,9 @@ static struct tegra_smmu *tegra_smmu_find(struct device_node *np) return NULL; mc = platform_get_drvdata(pdev);
- if (!mc) {
put_device(&pdev->dev);
- put_device(&pdev->dev);
- if (!mc) return NULL;
- }
return mc->smmu;
pdev->dev is what's backing mc, so if we use put_device() here, then the MC could go away at any time, right?
Holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.
But from what I can tell, you don't need to worry about that anyway since it's the memory controller driver that registers the iommu (and the driver can't be unbound).
Johan