2021-06-10 21:15:07

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] soc: qcom: ipa: Remove superfluous error message around platform_get_irq()

From: ?Zhongjun Tan <[email protected]>
Date: Thu, 10 Jun 2021 22:01:18 +0800

> diff --git a/drivers/net/ipa/ipa_smp2p.c b/drivers/net/ipa/ipa_smp2p.c
> index 34b68dc43886..93270e50b6b3 100644
> --- a/drivers/net/ipa/ipa_smp2p.c
> +++ b/drivers/net/ipa/ipa_smp2p.c
> @@ -177,11 +177,8 @@ static int ipa_smp2p_irq_init(struct ipa_smp2p *smp2p, const char *name,
> int ret;
>
> ret = platform_get_irq_byname(smp2p->ipa->pdev, name);
> - if (ret <= 0) {
> - dev_err(dev, "DT error %d getting \"%s\" IRQ property\n",
> - ret, name);
> + if (ret <= 0)
Applied, but this code still rejects an irq of zero which is a valid irq number.


2021-06-10 21:41:20

by Alex Elder

[permalink] [raw]
Subject: Re: [PATCH] soc: qcom: ipa: Remove superfluous error message around platform_get_irq()

On 6/10/21 4:11 PM, David Miller wrote:
> From:  Zhongjun Tan <[email protected]>
> Date: Thu, 10 Jun 2021 22:01:18 +0800
>
>> diff --git a/drivers/net/ipa/ipa_smp2p.c b/drivers/net/ipa/ipa_smp2p.c
>> index 34b68dc43886..93270e50b6b3 100644
>> --- a/drivers/net/ipa/ipa_smp2p.c
>> +++ b/drivers/net/ipa/ipa_smp2p.c
>> @@ -177,11 +177,8 @@ static int ipa_smp2p_irq_init(struct ipa_smp2p *smp2p, const char *name,
>> int ret;
>>
>> ret = platform_get_irq_byname(smp2p->ipa->pdev, name);
>> - if (ret <= 0) {
>> - dev_err(dev, "DT error %d getting \"%s\" IRQ property\n",
>> - ret, name);
>> + if (ret <= 0)
> Applied, but this code still rejects an irq of zero which is a valid irq number.

It rejects IRQ 0 intentionally. And if 0 is returned, there
will now be no message printed by the platform code.

As I recall, I looked for a *long* time to see whether IRQ 0
was a valid IRQ number in Linux. One reason I even questioned
it is that NO_IRQ is defined with value 0 on some architectures
(though not for Arm). I even asked Rob Herring about privately
it a few years back and he suggested I shouldn't allow 0.

Yes, it *looked* like IRQ 0 could be a valid return. But I
decided it was safer to just reject it, on the assumption
that it's unlikely to be returned (I don't believe it is
or ever will be used as the IRQ for SMP2P).

If you are certain it's valid, and should be allowed, I
have no objection to changing that "<=" to be "<".

-Alex

PS A quick search found this oldie:
https://yarchive.net/comp/linux/no_irq.html