diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2017-10-17 03:54:58 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-10-18 09:38:31 -0400 |
commit | 25e960efc63852b84d1c3739aef586285b177395 (patch) | |
tree | ae52750c606af14b54367eedccc2b68ad86d92cc | |
parent | 2b5175c4fa974b6aa05bbd2ee8d443a8036a1714 (diff) |
PCI/MSI: Set MSI_FLAG_MUST_REACTIVATE in core code
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>
Cc: Josh Poulson <jopoulso@microsoft.com>
Cc: Mihai Costache <v-micos@microsoft.com>
Cc: Stephen Hemminger <sthemmin@microsoft.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: linux-pci@vger.kernel.org
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: Simon Xiao <sixiao@microsoft.com>
Cc: Saeed Mahameed <saeedm@mellanox.com>
Cc: Jork Loeser <Jork.Loeser@microsoft.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: devel@linuxdriverproject.org
Cc: KY Srinivasan <kys@microsoft.com>
Link: https://lkml.kernel.org/r/20171017075600.448649905@linutronix.de
-rw-r--r-- | drivers/pci/msi.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 496ed9130600..e06607167858 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -1441,6 +1441,8 @@ struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode, | |||
1441 | pci_msi_domain_update_chip_ops(info); | 1441 | pci_msi_domain_update_chip_ops(info); |
1442 | 1442 | ||
1443 | info->flags |= MSI_FLAG_ACTIVATE_EARLY; | 1443 | info->flags |= MSI_FLAG_ACTIVATE_EARLY; |
1444 | if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE)) | ||
1445 | info->flags |= MSI_FLAG_MUST_REACTIVATE; | ||
1444 | 1446 | ||
1445 | domain = msi_create_irq_domain(fwnode, info, parent); | 1447 | domain = msi_create_irq_domain(fwnode, info, parent); |
1446 | if (!domain) | 1448 | if (!domain) |