2020-09-29 07:52:38

by Jing Xiangfeng

[permalink] [raw]
Subject: [PATCH] staging: mfd: hi6421-spmi-pmic: Fix error return in hi6421_spmi_pmic_probe()

Fix to return error code -ENOMEM from the error handling case instead
of 0.

Signed-off-by: Jing Xiangfeng <[email protected]>
---
drivers/staging/hikey9xx/hi6421-spmi-pmic.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/hikey9xx/hi6421-spmi-pmic.c b/drivers/staging/hikey9xx/hi6421-spmi-pmic.c
index 64b30d263c8d..4f34a5282970 100644
--- a/drivers/staging/hikey9xx/hi6421-spmi-pmic.c
+++ b/drivers/staging/hikey9xx/hi6421-spmi-pmic.c
@@ -262,8 +262,10 @@ static int hi6421_spmi_pmic_probe(struct spmi_device *pdev)
hi6421_spmi_pmic_irq_prc(pmic);

pmic->irqs = devm_kzalloc(dev, HISI_IRQ_NUM * sizeof(int), GFP_KERNEL);
- if (!pmic->irqs)
+ if (!pmic->irqs) {
+ ret = -ENOMEM;
goto irq_malloc;
+ }

pmic->domain = irq_domain_add_simple(np, HISI_IRQ_NUM, 0,
&hi6421_spmi_domain_ops, pmic);
--
2.26.0.106.g9fadedd


2020-09-29 08:02:48

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] staging: mfd: hi6421-spmi-pmic: Fix error return in hi6421_spmi_pmic_probe()

On Tue, Sep 29, 2020 at 03:48:47PM +0800, Jing Xiangfeng wrote:
> Fix to return error code -ENOMEM from the error handling case instead
> of 0.
>
> Signed-off-by: Jing Xiangfeng <[email protected]>
> ---
> drivers/staging/hikey9xx/hi6421-spmi-pmic.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/hikey9xx/hi6421-spmi-pmic.c b/drivers/staging/hikey9xx/hi6421-spmi-pmic.c
> index 64b30d263c8d..4f34a5282970 100644
> --- a/drivers/staging/hikey9xx/hi6421-spmi-pmic.c
> +++ b/drivers/staging/hikey9xx/hi6421-spmi-pmic.c
> @@ -262,8 +262,10 @@ static int hi6421_spmi_pmic_probe(struct spmi_device *pdev)
> hi6421_spmi_pmic_irq_prc(pmic);
>
> pmic->irqs = devm_kzalloc(dev, HISI_IRQ_NUM * sizeof(int), GFP_KERNEL);
> - if (!pmic->irqs)
> + if (!pmic->irqs) {
> + ret = -ENOMEM;
> goto irq_malloc;

It shouldn't do a goto, it should just return directly. The goto
releases an IRQ which isn't acquired until later in the function.

regards,
dan carpenter