[PATCH 7/7] s390/pci: move MSI affinity flag initialization to boot time
Tobias Schumacher <[email protected]>
| Newsgroups | org.kernel.vger.linux-s390,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
The MSI_FLAG_NO_AFFINITY flag for FLOATING mode is currently set lazily in zpci_create_parent_msi_domain(), which may be called multiple times when discovering PCI buses. While setting the flag multiple times is a no-op due to its idempotent nature, this is inefficient and unclear. Since irq_delivery mode is determined once at boot time and never changes, move the flag initialization to zpci_irq_init() where it belongs. This clarifies intent and avoids redundant repeated operations on the shared structure. Signed-off-by: Tobias Schumacher <[email protected]> --- arch/s390/pci/pci_irq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/s390/pci/pci_irq.c b/arch/s390/pci/pci_irq.c index 1ddf6b3625a2..ed19f7cce9eb 100644 --- a/arch/s390/pci/pci_irq.c +++ b/arch/s390/pci/pci_irq.c @@ -533,9 +533,6 @@ int zpci_create_parent_msi_domain(struct zpci_bus *zbus) return -ENOMEM; } - if (irq_delivery == FLOATING) - zpci_msi_parent_ops.required_flags |= MSI_FLAG_NO_AFFINITY; - zbus->msi_parent_domain = msi_create_parent_irq_domain(&info, &zpci_msi_parent_ops); if (!zbus->msi_parent_domain) { irq_domain_free_fwnode(info.fwnode); @@ -646,6 +643,9 @@ int __init zpci_irq_init(void) if (s390_pci_force_floating) irq_delivery = FLOATING; + if (irq_delivery == FLOATING) + zpci_msi_parent_ops.required_flags |= MSI_FLAG_NO_AFFINITY; + if (irq_delivery == DIRECTED) zpci_airq.handler = zpci_directed_irq_handler; -- 2.53.0