[irqchip: irq/irqchip-next] genirq/msi: Provide default .irq_eoi() for MSI chips

irqchip-bot for Valentin Schneider
2021-08-12T15:13:14Z

The following commit has been merged into the irq/irqchip-next branch of irqchip:

Commit-ID: 9b632bd34cea53fcfd3f41f89596d87573676050
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/9b632bd34cea53fcfd3f41f89596d87573676050
Author: Valentin Schneider <valentin.schneider@arm.com>
AuthorDate: Tue, 29 Jun 2021 13:50:05 +01:00
Committer: Marc Zyngier <maz@kernel.org>
CommitterDate: Thu, 12 Aug 2021 15:48:20 +01:00

genirq/msi: Provide default .irq_eoi() for MSI chips

Currently only platform-MSI irqchips get a default .irq_eoi() when
MSI_FLAG_USE_DEF_CHIP_OPS is set. There's no reason PCI-MSI irqchips
couldn't benefit from this too, so let all MSI irqchips benefit from this
default.

Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210629125010.458872-9-valentin.schneider@arm.com
---
drivers/base/platform-msi.c | 2 --
kernel/irq/msi.c | 2 ++
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
index 0b72b13..659881d 100644
--- a/drivers/base/platform-msi.c
+++ b/drivers/base/platform-msi.c
@@ -101,8 +101,6 @@ static void platform_msi_update_chip_ops(struct msi_domain_info *info)
chip->irq_mask = irq_chip_mask_parent;
if (!chip->irq_unmask)
chip->irq_unmask = irq_chip_unmask_parent;
- if (!chip->irq_eoi)
- chip->irq_eoi = irq_chip_eoi_parent;
if (!chip->irq_set_affinity)
chip->irq_set_affinity = msi_domain_set_affinity;
if (!chip->irq_write_msi_msg)
diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
index c41965e..c975909 100644
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -274,6 +274,8 @@ static void msi_domain_update_chip_ops(struct msi_domain_info *info)
BUG_ON(!chip || !chip->irq_mask || !chip->irq_unmask);
if (!chip->irq_set_affinity)
chip->irq_set_affinity = msi_domain_set_affinity;
+ if (!chip->irq_eoi)
+ chip->irq_eoi = irq_chip_eoi_parent;
}

/**