30.09.2020 08:39, Nicolin Chen пишет: > On Wed, Sep 30, 2020 at 08:24:02AM +0300, Dmitry Osipenko wrote: >> 30.09.2020 03:30, Nicolin Chen пишет: >>> + /* >>> + * IOMMU core allows -ENODEV return to carry on. So bypass any call >>> + * from bus_set_iommu() during tegra_smmu_probe(), as a device will >>> + * call in again via of_iommu_configure when fwspec is prepared. >>> + */ >>> + if (!mc->smmu || !fwspec || fwspec->ops != &tegra_smmu_ops) >>> return ERR_PTR(-ENODEV); >> >> The !mc->smmu can't be true. > > Are you sure? I have removed the "mc->smmu = smmu" in probe() with > this change. So the only time "mc->smmu == !NULL" is after probe() > of SMMU driver is returned. As my comments says, tegra_smmu_probe() > calls in this function via bus_set_iommu(), so mc->smmu can be NULL > in this case. > I missed that.