01.10.2020 00:32, Nicolin Chen пишет: > On Thu, Oct 01, 2020 at 12:24:25AM +0300, Dmitry Osipenko wrote: >> ... >>>> It looks to me like the only reason why you need this new global API is >>>> because PCI devices may not have a device tree node with a phandle to >>>> the IOMMU. However, SMMU support for PCI will only be enabled if the >>>> root complex has an iommus property, right? In that case, can't we >>>> simply do something like this: >>>> >>>> if (dev_is_pci(dev)) >>>> np = find_host_bridge(dev)->of_node; >>>> else >>>> np = dev->of_node; >>>> >>>> ? I'm not sure exactly what find_host_bridge() is called, but I'm pretty >>>> sure that exists. >>>> >>>> Once we have that we can still iterate over the iommus property and do >>>> not need to rely on this global variable. >>> >>> I agree that it'd work. But I was hoping to simplify the code >>> here if it's possible. Looks like we have an argument on this >>> so I will choose to go with your suggestion above for now. >> >> This patch removed more lines than were added. If this will be opposite >> for the Thierry's suggestion, then it's probably not a great suggestion. > > Sorry, I don't quite understand this comments. Would you please > elaborate what's this "it" being "not a great suggestion"? > I meant that you should try to implement Thierry's solution, but if the end result will be worse than the current patch, then you shouldn't make a v4, but get back to this discussion in order to choose the best option and make everyone agree on it.