Message ID | 20171017075600.448649905@linutronix.de |
---|---|
State | Not Applicable |
Headers | show |
Series | x86/PCI/MSI: Make sure that irq reservation mode works everywhere | expand |
On Tue, 17 Oct 2017, Thomas Gleixner wrote: > If interrupt reservation mode is enabled then the PCI/MSI interrupts must > be reactivated after early activation. > > Make sure that all callers of pci_msi_create_irq_domain() have the > MSI_FLAG_MUST_REACTIVATE set when reservation mode is enabled. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > --- > drivers/pci/msi.c | 2 ++ > 1 file changed, 2 insertions(+) > > --- a/drivers/pci/msi.c > +++ b/drivers/pci/msi.c > @@ -1441,6 +1441,8 @@ struct irq_domain *pci_msi_create_irq_do > pci_msi_domain_update_chip_ops(info); > > info->flags |= MSI_FLAG_ACTIVATE_EARLY; > + if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION)) Bah. quilt refresh seems overrated. Correct patch below. Thanks, tglx 8<---------------- --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -1441,6 +1441,8 @@ struct irq_domain *pci_msi_create_irq_do pci_msi_domain_update_chip_ops(info); info->flags |= MSI_FLAG_ACTIVATE_EARLY; + if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE)) + info->flags |= MSI_FLAG_MUST_REACTIVATE; domain = msi_create_irq_domain(fwnode, info, parent); if (!domain)
--- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -1441,6 +1441,8 @@ struct irq_domain *pci_msi_create_irq_do pci_msi_domain_update_chip_ops(info); info->flags |= MSI_FLAG_ACTIVATE_EARLY; + if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION)) + info->flags |= MSI_FLAG_MUST_REACTIVATE; domain = msi_create_irq_domain(fwnode, info, parent); if (!domain)
If interrupt reservation mode is enabled then the PCI/MSI interrupts must be reactivated after early activation. Make sure that all callers of pci_msi_create_irq_domain() have the MSI_FLAG_MUST_REACTIVATE set when reservation mode is enabled. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- drivers/pci/msi.c | 2 ++ 1 file changed, 2 insertions(+)