Re: [RESEND PATCH] charger-manager: Fix checking of wrong return type

From: Bartlomiej Zolnierkiewicz
Date: Thu Mar 27 2014 - 12:53:06 EST



Hi,

On Thursday, March 27, 2014 08:56:55 PM Chanwoo Choi wrote:
> This patch fix minor issue about checking wrong return type.
>
> The of_cm_parse_desc() return ERR_PTR(errnor number) when some error happen
> in this function. But, charger_manager_probe() has only checked whether
> desc is NULL or not. If of_cm_parse_desc() returns ERR_PTR(-ENOMEM), desc
> isn't NULL but desc is (void *)(-ENOMEM). Althouhg some error happen for parsing
> DT, charger_manager_probe() can't detect error of desc instance.
>
> Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
> Signed-off-by: Myungjoo Ham <myungjoo.ham@xxxxxxxxxxx>
> ---
> drivers/power/charger-manager.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/power/charger-manager.c b/drivers/power/charger-manager.c
> index 9e4dab4..a10fb57 100644
> --- a/drivers/power/charger-manager.c
> +++ b/drivers/power/charger-manager.c
> @@ -1677,7 +1677,7 @@ static int charger_manager_probe(struct platform_device *pdev)
> }
> }
>
> - if (!desc) {
> + if (IS_ERR(desc)) {
> dev_err(&pdev->dev, "No platform data (desc) found\n");
> return -ENODEV;

While you are at it you may also fix the code to return the proper error
code. of_cm_parse_desc() currently returns -ENOMEM not -ENODEV but it
would be even better to decode the actual return code from desc by using
'return PTR_ERR(desc)' instead of 'return -ENODEV'.

> }

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/