brcm47xx: handle return values of cfe_env_get() correctly.
authorHauke Mehrtens <hauke@hauke-m.de>
Sat, 16 Feb 2013 15:19:24 +0000 (15:19 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 16 Feb 2013 15:19:24 +0000 (15:19 +0000)
This closes #12746.

SVN-Revision: 35622

target/linux/brcm47xx/patches-3.6/820-wgt634u-nvram-fix.patch

index ef527c701e743cfe2e51e32e605df3b386f4528f..2c135a11155aee88c5e4846cc1906e0075cc6baa 100644 (file)
@@ -280,20 +280,21 @@ out the configuration than the in kernel cfe config reader.
        /* TODO: when nvram is on nand flash check for bad blocks first. */
        off = FLASH_MIN;
        while (off <= lim) {
-@@ -181,6 +203,12 @@ int bcm47xx_nvram_getenv(char *name, cha
+@@ -181,6 +203,13 @@ int bcm47xx_nvram_getenv(char *name, cha
                        return err;
        }
  
 +      if (cfe_env) {
 +              value = cfe_env_get(nvram_buf, name);
-+              snprintf(val, val_len, "%s", value);
-+              return 0;
++              if (!value)
++                      return -ENOENT;
++              return snprintf(val, val_len, "%s", value);
 +      }
 +
        /* Look for name=value and return value */
        var = &nvram_buf[sizeof(struct nvram_header)];
        end = nvram_buf + sizeof(nvram_buf) - 2;
-@@ -209,6 +237,9 @@ char *nvram_get(const char *name)
+@@ -209,6 +238,9 @@ char *nvram_get(const char *name)
        if (!nvram_buf[0])
                nvram_init();