diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2018-05-08 13:14:31 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2018-05-13 15:58:59 +0200 |
commit | 6988e0e0d28328467e218f59589b2770675a9ebd (patch) | |
tree | 823e5cb928612d0bf2186f1600c0191124156eb8 /drivers/base/platform-msi.c | |
parent | 0be8153cbc2af9a96e9ab8631fc3ba23bb52dbe3 (diff) |
genirq/msi: Limit level-triggered MSI to platform devices
Nobody would be insane enough to try and use level triggered
MSIs on PCI, but let's make sure it doesn't happen. Also,
let's mandate that the irqchip backing the platform MSI domain
is providing the IRQCHIP_SUPPORTS_LEVEL_MSI flag.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Rob Herring <robh@kernel.org>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lkml.kernel.org/r/20180508121438.11301-3-marc.zyngier@arm.com
Diffstat (limited to 'drivers/base/platform-msi.c')
-rw-r--r-- | drivers/base/platform-msi.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c index 8e22073aeeed..60d6cc618f1c 100644 --- a/drivers/base/platform-msi.c +++ b/drivers/base/platform-msi.c @@ -101,6 +101,9 @@ static void platform_msi_update_chip_ops(struct msi_domain_info *info) chip->irq_set_affinity = msi_domain_set_affinity; if (!chip->irq_write_msi_msg) chip->irq_write_msi_msg = platform_msi_write_msg; + if (WARN_ON((info->flags & MSI_FLAG_LEVEL_CAPABLE) && + !(chip->flags & IRQCHIP_SUPPORTS_LEVEL_MSI))) + info->flags &= ~MSI_FLAG_LEVEL_CAPABLE; } static void platform_msi_free_descs(struct device *dev, int base, int nvec) |