gpio: dwapb_gpio: Change to use devm_kcalloc()
authorLey Foon Tan <ley.foon.tan@intel.com>
Wed, 19 Sep 2018 08:26:33 +0000 (16:26 +0800)
committerMarek Vasut <marex@denx.de>
Wed, 3 Oct 2018 10:56:50 +0000 (12:56 +0200)
Change to use managed resource function devm_kcalloc(),
so it will auto free memory when driver is removed.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
drivers/gpio/dwapb_gpio.c

index 0f6574d5da1554e436efc6b9edd6e27ae4d910b4..68836a79021e3a22874d2c191f2aaadee76a8e39 100644 (file)
@@ -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);
                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)