Re: [PATCH 1/2] genirq/msi, platform-msi: Adjust return value of msi_domain_prepare_irqs()

From: Marc Zyngier
Date: Sun May 28 2023 - 03:48:04 EST


On Sat, 27 May 2023 15:03:29 +0100,
Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> On Sat, May 27 2023 at 13:46, Huacai Chen wrote:
> > Adjust the return value semanteme of msi_domain_prepare_irqs(), which
> > allows us to modify the input nvec by overriding the msi_domain_ops::
> > msi_prepare(). This is necessary for the later patch.
> >
> > Before:
> > 0 on success, others on error.
> >
> > After:
> > = 0: Success;
> >> 0: The modified nvec;
> > < 0: Error code.
>
> This explains what the patch does, but provides zero justification for
> this nor any analysis why this is correct for the existing use cases.
>
> That longsoon MSI domain is a PCI MSI domain. PCI/MSI has already a
> mechanism to return the actual possible number of vectors if the
> underlying space is exhausted.
>
> Why is that not sufficient for your problem at hand?

I've already made that point, but it seems that the argument is
falling on deaf ears.

Being able to allocate MSIs is not a guarantee, and is always
opportunistic. If some drivers badly fail because the they don't get
the number of MSIs they need, then they need fixing.

I really don't see the point in papering over this at the lowest level
of the stack.

M.

--
Without deviation from the norm, progress is not possible.