2022-05-23 07:25:06

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] irqchip/loongson-liointc: Fix an error handling path in liointc_init()

If a of_property_match_string() call fails, we still need to release some
resources.
Add the corresponding goto instead of a direct return.

Fixes: 807e93d0ecbb ("irqchip/loongson-liointc: Add ACPI init support")
Signed-off-by: Christophe JAILLET <[email protected]>
---
drivers/irqchip/irq-loongson-liointc.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loongson-liointc.c
index ff3cb5b05710..2227b702a81d 100644
--- a/drivers/irqchip/irq-loongson-liointc.c
+++ b/drivers/irqchip/irq-loongson-liointc.c
@@ -185,8 +185,10 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
int index = of_property_match_string(node,
"reg-names", core_reg_names[i]);

- if (index < 0)
- return -EINVAL;
+ if (index < 0) {
+ err = -EINVAL;
+ goto out_iounmap;
+ }

priv->core_isr[i] = of_iomap(node, index);
}
--
2.34.1



2022-05-24 05:58:36

by Christophe JAILLET

[permalink] [raw]
Subject: Re: [PATCH] irqchip/loongson-liointc: Fix an error handling path in liointc_init()

Le 24/05/2022 à 05:47, Huacai Chen a écrit :
> Hi, Christophe,
>
> On Tue, May 24, 2022 at 10:50 AM Huacai Chen <[email protected]> wrote:
>>
>> Hi, Christophe,
>>
>> On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
>> <[email protected]> wrote:
>>>
>>> If a of_property_match_string() call fails, we still need to release some
>>> resources.
>>> Add the corresponding goto instead of a direct return.
>> Your patch is correct, but 807e93d0ecbb hasn't been upstream, I don't
>> know how to handle it.
>>
>> Huacai
>>>
>>> Fixes: 807e93d0ecbb ("irqchip/loongson-liointc: Add ACPI init support")
>>> Signed-off-by: Christophe JAILLET <[email protected]>
>>> ---
>>> drivers/irqchip/irq-loongson-liointc.c | 6 ++++--
>>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loongson-liointc.c
>>> index ff3cb5b05710..2227b702a81d 100644
>>> --- a/drivers/irqchip/irq-loongson-liointc.c
>>> +++ b/drivers/irqchip/irq-loongson-liointc.c
>>> @@ -185,8 +185,10 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
>>> int index = of_property_match_string(node,
>>> "reg-names", core_reg_names[i]);
>>>
>>> - if (index < 0)
>>> - return -EINVAL;
>>> + if (index < 0) {
>>> + err = -EINVAL;
>>> + goto out_iounmap;
>>> + }
> Just goto out_iounmap is OK, because it returns -EINVAL at last.

Yes, agreed.

> I've squash your patch to the original one and add a Co-developed-by:,
> not sure it is the best solution. Thanks.

Squashing in the original patch is fine for me. It is what is usually
done in such cases.

The Co-developed-by: is maybe a bit to much. I've just fixed a bug that
can't happen (IMHO) in real life. I'll let you decide what is more relevant.
With or without the tag is fine for me as well.

CJ


>
> Huacai
>>>
>>> priv->core_isr[i] = of_iomap(node, index);
>>> }
>>> --
>>> 2.34.1
>>>
>


2022-05-24 06:17:43

by Huacai Chen

[permalink] [raw]
Subject: Re: [PATCH] irqchip/loongson-liointc: Fix an error handling path in liointc_init()

Hi, Christophe,

On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
<[email protected]> wrote:
>
> If a of_property_match_string() call fails, we still need to release some
> resources.
> Add the corresponding goto instead of a direct return.
Your patch is correct, but 807e93d0ecbb hasn't been upstream, I don't
know how to handle it.

Huacai
>
> Fixes: 807e93d0ecbb ("irqchip/loongson-liointc: Add ACPI init support")
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> drivers/irqchip/irq-loongson-liointc.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loongson-liointc.c
> index ff3cb5b05710..2227b702a81d 100644
> --- a/drivers/irqchip/irq-loongson-liointc.c
> +++ b/drivers/irqchip/irq-loongson-liointc.c
> @@ -185,8 +185,10 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
> int index = of_property_match_string(node,
> "reg-names", core_reg_names[i]);
>
> - if (index < 0)
> - return -EINVAL;
> + if (index < 0) {
> + err = -EINVAL;
> + goto out_iounmap;
> + }
>
> priv->core_isr[i] = of_iomap(node, index);
> }
> --
> 2.34.1
>

2022-05-24 10:25:43

by WANG Xuerui

[permalink] [raw]
Subject: Re: [PATCH] irqchip/loongson-liointc: Fix an error handling path in liointc_init()

Hi Huacai,

On 5/24/22 11:47, Huacai Chen wrote:
> Hi, Christophe,
>
> On Tue, May 24, 2022 at 10:50 AM Huacai Chen <[email protected]> wrote:
>> Hi, Christophe,
>>
>> On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
>> <[email protected]> wrote:
>>> If a of_property_match_string() call fails, we still need to release some
>>> resources.
>>> Add the corresponding goto instead of a direct return.
>> Your patch is correct, but 807e93d0ecbb hasn't been upstream, I don't
>> know how to handle it.
>>
>> Huacai
>>> Fixes: 807e93d0ecbb ("irqchip/loongson-liointc: Add ACPI init support")
>>> Signed-off-by: Christophe JAILLET <[email protected]>
>>> ---
>>> drivers/irqchip/irq-loongson-liointc.c | 6 ++++--
>>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loongson-liointc.c
>>> index ff3cb5b05710..2227b702a81d 100644
>>> --- a/drivers/irqchip/irq-loongson-liointc.c
>>> +++ b/drivers/irqchip/irq-loongson-liointc.c
>>> @@ -185,8 +185,10 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
>>> int index = of_property_match_string(node,
>>> "reg-names", core_reg_names[i]);
>>>
>>> - if (index < 0)
>>> - return -EINVAL;
>>> + if (index < 0) {
>>> + err = -EINVAL;
>>> + goto out_iounmap;
>>> + }
> Just goto out_iounmap is OK, because it returns -EINVAL at last.
> I've squash your patch to the original one and add a Co-developed-by:,
> not sure it is the best solution. Thanks.
You could also "Reported-by" and/or "Suggested-by", to give proper
credit. Mention of this mail thread (link to lore.kernel.org archive
maybe) in the commit message is good too.
>
> Huacai
>>> priv->core_isr[i] = of_iomap(node, index);
>>> }
>>> --
>>> 2.34.1
>>>

2022-05-24 16:33:54

by Huacai Chen

[permalink] [raw]
Subject: Re: [PATCH] irqchip/loongson-liointc: Fix an error handling path in liointc_init()

Hi, Xuerui,

On Tue, May 24, 2022 at 1:41 PM WANG Xuerui <[email protected]> wrote:
>
> Hi Huacai,
>
> On 5/24/22 11:47, Huacai Chen wrote:
> > Hi, Christophe,
> >
> > On Tue, May 24, 2022 at 10:50 AM Huacai Chen <[email protected]> wrote:
> >> Hi, Christophe,
> >>
> >> On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
> >> <[email protected]> wrote:
> >>> If a of_property_match_string() call fails, we still need to release some
> >>> resources.
> >>> Add the corresponding goto instead of a direct return.
> >> Your patch is correct, but 807e93d0ecbb hasn't been upstream, I don't
> >> know how to handle it.
> >>
> >> Huacai
> >>> Fixes: 807e93d0ecbb ("irqchip/loongson-liointc: Add ACPI init support")
> >>> Signed-off-by: Christophe JAILLET <[email protected]>
> >>> ---
> >>> drivers/irqchip/irq-loongson-liointc.c | 6 ++++--
> >>> 1 file changed, 4 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loongson-liointc.c
> >>> index ff3cb5b05710..2227b702a81d 100644
> >>> --- a/drivers/irqchip/irq-loongson-liointc.c
> >>> +++ b/drivers/irqchip/irq-loongson-liointc.c
> >>> @@ -185,8 +185,10 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
> >>> int index = of_property_match_string(node,
> >>> "reg-names", core_reg_names[i]);
> >>>
> >>> - if (index < 0)
> >>> - return -EINVAL;
> >>> + if (index < 0) {
> >>> + err = -EINVAL;
> >>> + goto out_iounmap;
> >>> + }
> > Just goto out_iounmap is OK, because it returns -EINVAL at last.
> > I've squash your patch to the original one and add a Co-developed-by:,
> > not sure it is the best solution. Thanks.
> You could also "Reported-by" and/or "Suggested-by", to give proper
> credit. Mention of this mail thread (link to lore.kernel.org archive
> maybe) in the commit message is good too.
I think "Reported-by" is used for a bugfix patch, not suitable for the
original patch. And maybe "Suggested-by" is the best.

Huacai
> >
> > Huacai
> >>> priv->core_isr[i] = of_iomap(node, index);
> >>> }
> >>> --
> >>> 2.34.1
> >>>

2022-05-25 02:40:28

by Huacai Chen

[permalink] [raw]
Subject: Re: [PATCH] irqchip/loongson-liointc: Fix an error handling path in liointc_init()

Hi, Christophe,

On Tue, May 24, 2022 at 10:50 AM Huacai Chen <[email protected]> wrote:
>
> Hi, Christophe,
>
> On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
> <[email protected]> wrote:
> >
> > If a of_property_match_string() call fails, we still need to release some
> > resources.
> > Add the corresponding goto instead of a direct return.
> Your patch is correct, but 807e93d0ecbb hasn't been upstream, I don't
> know how to handle it.
>
> Huacai
> >
> > Fixes: 807e93d0ecbb ("irqchip/loongson-liointc: Add ACPI init support")
> > Signed-off-by: Christophe JAILLET <[email protected]>
> > ---
> > drivers/irqchip/irq-loongson-liointc.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loongson-liointc.c
> > index ff3cb5b05710..2227b702a81d 100644
> > --- a/drivers/irqchip/irq-loongson-liointc.c
> > +++ b/drivers/irqchip/irq-loongson-liointc.c
> > @@ -185,8 +185,10 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
> > int index = of_property_match_string(node,
> > "reg-names", core_reg_names[i]);
> >
> > - if (index < 0)
> > - return -EINVAL;
> > + if (index < 0) {
> > + err = -EINVAL;
> > + goto out_iounmap;
> > + }
Just goto out_iounmap is OK, because it returns -EINVAL at last.
I've squash your patch to the original one and add a Co-developed-by:,
not sure it is the best solution. Thanks.

Huacai
> >
> > priv->core_isr[i] = of_iomap(node, index);
> > }
> > --
> > 2.34.1
> >