On 09/19/2018 10:26 AM, Ley Foon Tan wrote:
> Change to use managed resource function devm_kcalloc(),
> so it will auto free memory when driver is removed.
> 
> Signed-off-by: Ley Foon Tan <[email protected]>
> 
> ---
> v3:
> - Remove goto and return directly.
> 
> v2:
> - Remove free() function.
> ---
>  drivers/gpio/dwapb_gpio.c | 11 ++---------
>  1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpio/dwapb_gpio.c b/drivers/gpio/dwapb_gpio.c
> index 0f6574d..68836a7 100644
> --- a/drivers/gpio/dwapb_gpio.c
> +++ b/drivers/gpio/dwapb_gpio.c
> @@ -171,8 +171,7 @@ static int gpio_dwapb_bind(struct udevice *dev)
>               if (!fdtdec_get_bool(blob, node, "gpio-controller"))
>                       continue;
>  
> -             plat = NULL;
> -             plat = calloc(1, sizeof(*plat));
> +             plat = devm_kcalloc(dev, 1, sizeof(*plat), GFP_KERNEL);
>               if (!plat)
>                       return -ENOMEM;
>  
> @@ -181,23 +180,17 @@ static int gpio_dwapb_bind(struct udevice *dev)
>               plat->pins = fdtdec_get_int(blob, node, "snps,nr-gpios", 0);
>               plat->name = fdt_stringlist_get(blob, node, "bank-name", 0,
>                                               NULL);
> -             if (ret)
> -                     goto err;
>  
>               ret = device_bind(dev, dev->driver, plat->name,
>                                 plat, -1, &subdev);

btw. on DW GPIO with multiple banks, if this bind fails for any bank but
the first, the driver won't clean up properly ;-)

>               if (ret)
> -                     goto err;
> +                     return ret;
>  
>               dev_set_of_offset(subdev, node);
>               bank++;
>       }
>  
>       return 0;
> -
> -err:
> -     free(plat);
> -     return ret;
>  }
>  
>  static int gpio_dwapb_remove(struct udevice *dev)
> 

Applied, thanks

-- 
Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to