Message ID | 20221111122014.352437595@linutronix.de (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | genirq, PCI/MSI: Support for per device MSI and PCI/IMS - Part 1 cleanups | expand |
On Fri, Nov 11, 2022 at 02:54:35PM +0100, Thomas Gleixner wrote: > From: Ahmed S. Darwish <darwi@linutronix.de> > > Set the bus token in the msi_domain_info structure and let the core code > handle the update. > > Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Bjorn Helgaas <bhelgaas@google.com> > --- > drivers/pci/msi/irqdomain.c | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > --- a/drivers/pci/msi/irqdomain.c > +++ b/drivers/pci/msi/irqdomain.c > @@ -162,8 +162,6 @@ struct irq_domain *pci_msi_create_irq_do > struct msi_domain_info *info, > struct irq_domain *parent) > { > - struct irq_domain *domain; > - > if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE)) > info->flags &= ~MSI_FLAG_LEVEL_CAPABLE; > > @@ -178,13 +176,10 @@ struct irq_domain *pci_msi_create_irq_do > > /* PCI-MSI is oneshot-safe */ > info->chip->flags |= IRQCHIP_ONESHOT_SAFE; > + /* Let the core update the bus token */ > + info->bus_token = DOMAIN_BUS_PCI_MSI; > > - domain = msi_create_irq_domain(fwnode, info, parent); > - if (!domain) > - return NULL; > - > - irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI); > - return domain; > + return msi_create_irq_domain(fwnode, info, parent); > } > EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain); > >
On Fri, Nov 11, 2022 at 02:54:35PM +0100, Thomas Gleixner wrote: > From: Ahmed S. Darwish <darwi@linutronix.de> > > Set the bus token in the msi_domain_info structure and let the core code > handle the update. > > Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > --- > drivers/pci/msi/irqdomain.c | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > --- a/drivers/pci/msi/irqdomain.c > +++ b/drivers/pci/msi/irqdomain.c > @@ -162,8 +162,6 @@ struct irq_domain *pci_msi_create_irq_do > struct msi_domain_info *info, > struct irq_domain *parent) > { > - struct irq_domain *domain; > - > if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE)) > info->flags &= ~MSI_FLAG_LEVEL_CAPABLE; > > @@ -178,13 +176,10 @@ struct irq_domain *pci_msi_create_irq_do > > /* PCI-MSI is oneshot-safe */ > info->chip->flags |= IRQCHIP_ONESHOT_SAFE; > + /* Let the core update the bus token */ > + info->bus_token = DOMAIN_BUS_PCI_MSI; comment seems a bit obvious Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Should the callers be updated to set this in their "struct msi_domain_info" ? Jason
On Wed, Nov 16 2022 at 13:51, Jason Gunthorpe wrote: > On Fri, Nov 11, 2022 at 02:54:35PM +0100, Thomas Gleixner wrote: >> /* PCI-MSI is oneshot-safe */ >> info->chip->flags |= IRQCHIP_ONESHOT_SAFE; >> + /* Let the core update the bus token */ >> + info->bus_token = DOMAIN_BUS_PCI_MSI; > > comment seems a bit obvious :) > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> > > Should the callers be updated to set this in their "struct > msi_domain_info" ? For PCI/MSI we can handle that in the core for all of them. :) The other msi_domain_info usage in various places needs obviously special care. Thanks, tglx
--- a/drivers/pci/msi/irqdomain.c +++ b/drivers/pci/msi/irqdomain.c @@ -162,8 +162,6 @@ struct irq_domain *pci_msi_create_irq_do struct msi_domain_info *info, struct irq_domain *parent) { - struct irq_domain *domain; - if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE)) info->flags &= ~MSI_FLAG_LEVEL_CAPABLE; @@ -178,13 +176,10 @@ struct irq_domain *pci_msi_create_irq_do /* PCI-MSI is oneshot-safe */ info->chip->flags |= IRQCHIP_ONESHOT_SAFE; + /* Let the core update the bus token */ + info->bus_token = DOMAIN_BUS_PCI_MSI; - domain = msi_create_irq_domain(fwnode, info, parent); - if (!domain) - return NULL; - - irq_domain_update_bus_token(domain, DOMAIN_BUS_PCI_MSI); - return domain; + return msi_create_irq_domain(fwnode, info, parent); } EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);