02.10.2020 20:45, Nicolin Chen пишет: > On Fri, Oct 02, 2020 at 05:35:24PM +0300, Dmitry Osipenko wrote: >> 02.10.2020 09:08, Nicolin Chen пишет: >>> @@ -865,7 +866,11 @@ static struct iommu_group *tegra_smmu_device_group(struct device *dev) >>> group->smmu = smmu; >>> group->soc = soc; >>> >>> - group->group = iommu_group_alloc(); >>> + if (dev_is_pci(dev)) >>> + group->group = pci_device_group(dev); >>> + else >>> + group->group = generic_device_group(dev); >>> + >>> if (IS_ERR(group->group)) { >>> devm_kfree(smmu->dev, group); >>> mutex_unlock(&smmu->lock); >>> @@ -1069,22 +1074,32 @@ struct tegra_smmu *tegra_smmu_probe(struct device *dev, >>> iommu_device_set_fwnode(&smmu->iommu, dev->fwnode); >>> >>> err = iommu_device_register(&smmu->iommu); >>> - if (err) { >>> - iommu_device_sysfs_remove(&smmu->iommu); >>> - return ERR_PTR(err); >>> - } >>> + if (err) >>> + goto err_sysfs; >>> >>> err = bus_set_iommu(&platform_bus_type, &tegra_smmu_ops); >>> - if (err < 0) { >>> - iommu_device_unregister(&smmu->iommu); >>> - iommu_device_sysfs_remove(&smmu->iommu); >>> - return ERR_PTR(err); >>> - } >>> + if (err < 0) >>> + goto err_unregister; >>> + >>> +#ifdef CONFIG_PCI >>> + err = bus_set_iommu(&pci_bus_type, &tegra_smmu_ops); >>> + if (err < 0) >>> + goto err_bus_set; >>> +#endif >>> >>> if (IS_ENABLED(CONFIG_DEBUG_FS)) >>> tegra_smmu_debugfs_init(smmu); >>> >>> return smmu; >>> + >>> +err_bus_set: __maybe_unused; >> >> __maybe_unused? > > In order to mute a build warning when CONFIG_PCI=n... > okay