diff mbox series

irqchip/loongson-liointc: Fix an error handling path in liointc_init()

Message ID 1c4e81eda5f9651f581f1554629d334f1afda841.1653227039.git.christophe.jaillet@wanadoo.fr (mailing list archive)
State Superseded
Headers show
Series irqchip/loongson-liointc: Fix an error handling path in liointc_init() | expand

Commit Message

Christophe JAILLET May 22, 2022, 1:44 p.m. UTC
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 <christophe.jaillet@wanadoo.fr>
---
 drivers/irqchip/irq-loongson-liointc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Huacai Chen May 24, 2022, 2:50 a.m. UTC | #1
Hi, Christophe,

On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> 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 <christophe.jaillet@wanadoo.fr>
> ---
>  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
>
Huacai Chen May 24, 2022, 3:47 a.m. UTC | #2
Hi, Christophe,

On Tue, May 24, 2022 at 10:50 AM Huacai Chen <chenhuacai@kernel.org> wrote:
>
> Hi, Christophe,
>
> On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
> <christophe.jaillet@wanadoo.fr> 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 <christophe.jaillet@wanadoo.fr>
> > ---
> >  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
> >
Christophe JAILLET May 24, 2022, 5:36 a.m. UTC | #3
Le 24/05/2022 à 05:47, Huacai Chen a écrit :
> Hi, Christophe,
> 
> On Tue, May 24, 2022 at 10:50 AM Huacai Chen <chenhuacai@kernel.org> wrote:
>>
>> Hi, Christophe,
>>
>> On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
>> <christophe.jaillet@wanadoo.fr> 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 <christophe.jaillet@wanadoo.fr>
>>> ---
>>>   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
>>>
>
WANG Xuerui May 24, 2022, 5:41 a.m. UTC | #4
Hi Huacai,

On 5/24/22 11:47, Huacai Chen wrote:
> Hi, Christophe,
>
> On Tue, May 24, 2022 at 10:50 AM Huacai Chen <chenhuacai@kernel.org> wrote:
>> Hi, Christophe,
>>
>> On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
>> <christophe.jaillet@wanadoo.fr> 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 <christophe.jaillet@wanadoo.fr>
>>> ---
>>>   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
>>>
Huacai Chen May 24, 2022, 10:48 a.m. UTC | #5
Hi, Xuerui,

On Tue, May 24, 2022 at 1:41 PM WANG Xuerui <kernel@xen0n.name> 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 <chenhuacai@kernel.org> wrote:
> >> Hi, Christophe,
> >>
> >> On Sun, May 22, 2022 at 9:44 PM Christophe JAILLET
> >> <christophe.jaillet@wanadoo.fr> 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 <christophe.jaillet@wanadoo.fr>
> >>> ---
> >>>   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
> >>>
diff mbox series

Patch

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);
 		}