Re: [PATCH 2/7] genirq/msi: Limit level-triggered MSI to platform devices

From: Thomas Gleixner
Date: Thu Apr 26 2018 - 15:51:02 EST


On Mon, 23 Apr 2018, Marc Zyngier wrote:

> 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 an irq_set_type method (or the whole thing would
> be a bit useless).
>
> Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
> ---
> drivers/base/platform-msi.c | 3 +++
> drivers/pci/msi.c | 3 +++
> 2 files changed, 6 insertions(+)
>
> diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
> index 8e22073aeeed..3b9694a6beaa 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->irq_set_type))

Shouldn't we just require something like IRQCHIP_SUPPORTS_MSI_LEVEL or such
in chip->flags being set instead?

Thanks,

tglx