]> git.sur5r.net Git - u-boot/commitdiff
env_sf: re-order error handling in single-buffer env_relocate_spec
authorAndreas Fenkart <afenkart@gmail.com>
Sat, 8 Apr 2017 09:59:33 +0000 (11:59 +0200)
committerJagan Teki <jagan@openedev.com>
Wed, 3 May 2017 05:48:06 +0000 (11:18 +0530)
this makes it easier comparable to the double-buffered version

Signed-off-by: Andreas Fenkart <afenkart@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagan Teki <jagan@openedev.com>
Tested-by: Jagan Teki <jagan@openedev.com>
common/env_sf.c

index a52fb734c85c6a061cd0631b6c7a0296448ccb12..6a1583ebec31acb5dc69b55ae62746325a14e1b1 100644 (file)
@@ -313,29 +313,31 @@ void env_relocate_spec(void)
        char *buf = NULL;
 
        buf = (char *)memalign(ARCH_DMA_MINALIGN, CONFIG_ENV_SIZE);
-
-       ret = setup_flash_device();
-       if (ret) {
-               if (buf)
-                       free(buf);
+       if (!buf) {
+               set_default_env("!malloc() failed");
                return;
        }
 
+       ret = setup_flash_device();
+       if (ret)
+               goto out;
+
        ret = spi_flash_read(env_flash,
                CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE, buf);
        if (ret) {
                set_default_env("!spi_flash_read() failed");
-               goto out;
+               goto err_read;
        }
 
        ret = env_import(buf, 1);
        if (ret)
                gd->env_valid = 1;
-out:
+
+err_read:
        spi_flash_free(env_flash);
-       if (buf)
-               free(buf);
        env_flash = NULL;
+out:
+       free(buf);
 }
 #endif