Message ID | 20211210221813.556202506@linutronix.de (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | genirq/msi, PCI/MSI: Spring cleaning - Part 2 | expand |
On Fri, Dec 10, 2021 at 11:18:52PM +0100, Thomas Gleixner wrote: > From: Thomas Gleixner <tglx@linutronix.de> > > instead of fiddling with MSI descriptors. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Cc: linuxppc-dev@lists.ozlabs.org > --- > V3: Use pci_dev->msix_enabled - Jason > --- > arch/powerpc/platforms/pseries/msi.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> > --- a/arch/powerpc/platforms/pseries/msi.c > +++ b/arch/powerpc/platforms/pseries/msi.c > @@ -448,8 +448,7 @@ static int pseries_msi_ops_prepare(struc > int nvec, msi_alloc_info_t *arg) > { > struct pci_dev *pdev = to_pci_dev(dev); > - struct msi_desc *desc = first_pci_msi_entry(pdev); > - int type = desc->pci.msi_attrib.is_msix ? PCI_CAP_ID_MSIX : PCI_CAP_ID_MSI; > + int type = pdev->msix_enabled ? PCI_CAP_ID_MSIX : PCI_CAP_ID_MSI; Long term it probably makes sense to change the msi_domain_ops so that it has PCI versions of the ops to use in places like this that hard assume PCI is the only kind of MSI at all. If the non-PCI op isn't provided then things like IMS would be denied - and the PCI op can directly pass in a pci_dev * so we don't have all these to_pci_devs() in drivers. Jason
--- a/arch/powerpc/platforms/pseries/msi.c +++ b/arch/powerpc/platforms/pseries/msi.c @@ -448,8 +448,7 @@ static int pseries_msi_ops_prepare(struc int nvec, msi_alloc_info_t *arg) { struct pci_dev *pdev = to_pci_dev(dev); - struct msi_desc *desc = first_pci_msi_entry(pdev); - int type = desc->pci.msi_attrib.is_msix ? PCI_CAP_ID_MSIX : PCI_CAP_ID_MSI; + int type = pdev->msix_enabled ? PCI_CAP_ID_MSIX : PCI_CAP_ID_MSI; return rtas_prepare_msi_irqs(pdev, nvec, type, arg); }