Re: [PATCH v2 1/2] driver core: platform: Clarify that IRQ 0 is invalid
From: Greg Kroah-Hartman
Date: Sat May 02 2020 - 02:15:47 EST
On Fri, May 01, 2020 at 05:40:41PM -0500, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
>
> These interfaces return a negative error number or an IRQ:
>
> platform_get_irq()
> platform_get_irq_optional()
> platform_get_irq_byname()
> platform_get_irq_byname_optional()
>
> The function comments suggest checking for error like this:
>
> irq = platform_get_irq(...);
> if (irq < 0)
> return irq;
>
> which is what most callers (~900 of 1400) do, so it's implicit that IRQ 0
> is invalid. But some callers check for "irq <= 0", and it's not obvious
> from the source that we never return an IRQ 0.
>
> Make this more explicit by updating the comments to say that an IRQ number
> is always non-zero and adding a WARN() if we ever do return zero. If we do
> return IRQ 0, it likely indicates a bug in the arch-specific parts of
> platform_get_irq().
I worry about adding WARN() as there are systems that do panic_on_warn()
and syzbot trips over this as well. I don't think that for this issue
it would be a problem, but what really is this warning about that
someone could do anything with?
Other than that minor thing, this looks good to me, thanks for finally
clearing this up.
greg k-h