Re: [PATCH 4/5] pci: handled return value of platform_get_irq correctly

From: Thomas Gleixner
Date: Thu Mar 19 2020 - 04:48:22 EST


Bjorn Helgaas <helgaas@xxxxxxxxxx> writes:
> On Wed, Mar 18, 2020 at 02:42:48PM +0100, Thomas Gleixner wrote:
>> Bjorn Helgaas <helgaas@xxxxxxxxxx> writes:
>> > On Fri, Mar 13, 2020 at 04:56:42PM -0500, Bjorn Helgaas wrote:
>> >> On Fri, Mar 13, 2020 at 10:05:58PM +0100, Thomas Gleixner wrote:
>> >> > > I think the best pattern is:
>> >> > >
>> >> > > irq = platform_get_irq(pdev, i);
>> >> > > if (irq < 0)
>> >> > > return irq;
>> >> >
>> >> > Careful. 0 is not a valid interrupt.
>> >>
>> >> Should callers of platform_get_irq() check for a 0 return value?
>> >> About 900 of them do not.
>>
>> I don't know what I was looking at.
>>
>> platform_get_irq() does the right thing already, so checking for irq < 0
>> is sufficient.
>>
>> Sorry for the confusion!
>
> Thanks, I was indeed confused! Maybe we could reduce future confusion
> by strengthening the comments slightly, e.g.,
>
> - * Return: IRQ number on success, negative error number on failure.
> + * Return: non-zero IRQ number on success, negative error number on failure.
>
> I don't want to push my luck, but it's pretty hard to prove that
> platform_get_irq() never returns 0. What would you think of something
> like the following?

No objections from my side.