On Sat, Nov 27, 2021 at 02:21:17AM +0100, Thomas Gleixner wrote: > This is the second part of [PCI]MSI refactoring which aims to provide the > ability of expanding MSI-X vectors after enabling MSI-X. > > The first part of this work can be found here: > > https://lore.kernel.org/r/20211126222700.862407977@xxxxxxxxxxxxx > > This second part has the following important changes: > > 1) Cleanup of the MSI related data in struct device > > struct device contains at the moment various MSI related parts. Some > of them (the irq domain pointer) cannot be moved out, but the rest > can be allocated on first use. This is in preparation of adding more > per device MSI data later on. > > 2) Consolidation of sysfs handling > > As a first step this moves the sysfs pointer from struct msi_desc > into the new per device MSI data structure where it belongs. > > Later changes will cleanup this code further, but that's not possible > at this point. > > 3) Store per device properties in the per device MSI data to avoid > looking up MSI descriptors and analysing their data. Cleanup all > related use cases. > > 4) Provide a function to retrieve the Linux interrupt number for a given > MSI index similar to pci_irq_vector() and cleanup all open coded > variants. The msi_get_virq() sure does make a big difference.. Though it does highlight there is some asymmetry with how platform and PCI works here where PCI fills some 'struct msix_entry *'. Many drivers would be quite happy to just call msi_get_virq() and avoid the extra memory, so I think the msi_get_virq() version is good. Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> Thanks, Jason