Re: [PATCH] PCI: let pci_request_irq properly deal with threaded interrupts

From: Thomas Gleixner
Date: Fri Aug 03 2018 - 15:41:02 EST


On Fri, 3 Aug 2018, Heiner Kallweit wrote:
> On 03.08.2018 16:09, Thomas Gleixner wrote:
> > On Wed, 1 Aug 2018, Heiner Kallweit wrote:
> >> diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
> >> index 4ca2fd46..ba6da943 100644
> >> --- a/kernel/irq/msi.c
> >> +++ b/kernel/irq/msi.c
> >> @@ -289,6 +289,9 @@ struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,
> >> if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
> >> msi_domain_update_chip_ops(info);
> >>
> >> + /* MSI is oneshot-safe in general */
> >> + info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
> >> +
> >> domain = irq_domain_create_hierarchy(parent, IRQ_DOMAIN_FLAG_MSI, 0,
> >
> > Looks about right, though there might be dragons. MSI is not always as sane
> > as it should be...
> >
> When saying "MSI isn't always sane", are you referring to the hardware or
> the controller driver implementation? Basically for me the question is
> whether we would be able to fix the issue if we meet such a dragon,
> or whether we would have to revert the change.

It's hardware unfortunately, so it might be a revert. PCI-MSI should be
safe, but the wild MSI variants in SoCs might be the actual dragon caves.

> Do you think the chance of a dragon is low enough? Or better add the
> flag only to the X86 PCI MSI irqchip for now?

I think PCI-MSI in general would be not too risky. Famous last words.

Thanks,

tglx