The malloc() calls are unnecessary, just allocate the stuff on stack.
While at it, reorder the code a little, so that only one variable is
used for the text, use snprintf() instead of sprintf() and use %01d
as a formatting string to avoid any possible overflows.

Signed-off-by: Marek Vasut <ma...@denx.de>
Cc: Igor Grinberg <grinb...@compulab.co.il>
Cc: Nikita Kiryanov <nik...@compulab.co.il>
Cc: Sean Cross <x...@kosagi.com>
Cc: Simon Glass <s...@chromium.org>
Cc: Stefano Babic <sba...@denx.de>
Cc: Tim Harvey <thar...@gateworks.com>
---
 arch/arm/imx-common/i2c-mxv7.c | 24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/arch/arm/imx-common/i2c-mxv7.c b/arch/arm/imx-common/i2c-mxv7.c
index 34f5387..1a632e7 100644
--- a/arch/arm/imx-common/i2c-mxv7.c
+++ b/arch/arm/imx-common/i2c-mxv7.c
@@ -73,26 +73,21 @@ static void * const i2c_bases[] = {
 int setup_i2c(unsigned i2c_index, int speed, int slave_addr,
              struct i2c_pads_info *p)
 {
-       char *name1, *name2;
+       char name[9];
        int ret;
 
        if (i2c_index >= ARRAY_SIZE(i2c_bases))
                return -EINVAL;
 
-       name1 = malloc(9);
-       name2 = malloc(9);
-       if (!name1 || !name2)
-               return -ENOMEM;
-
-       sprintf(name1, "i2c_sda%d", i2c_index);
-       sprintf(name2, "i2c_scl%d", i2c_index);
-       ret = gpio_request(p->sda.gp, name1);
+       snprintf(name, sizeof(name), "i2c_sda%01d", i2c_index);
+       ret = gpio_request(p->sda.gp, name);
        if (ret)
-               goto err_req1;
+               return ret;
 
-       ret = gpio_request(p->scl.gp, name2);
+       snprintf(name, sizeof(name), "i2c_scl%01d", i2c_index);
+       ret = gpio_request(p->scl.gp, name);
        if (ret)
-               goto err_req2;
+               goto err_req;
 
        /* Enable i2c clock */
        ret = enable_i2c_clk(1, i2c_index);
@@ -112,11 +107,8 @@ int setup_i2c(unsigned i2c_index, int speed, int 
slave_addr,
 err_idle:
 err_clk:
        gpio_free(p->scl.gp);
-err_req2:
+err_req:
        gpio_free(p->sda.gp);
-err_req1:
-       free(name1);
-       free(name2);
 
        return ret;
 }
-- 
2.1.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to