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