brcm47xx: fix reading WGT634U CFE variables

We got check for nvram_len placed too early and the code never tried
reading CFE variables used on WGT634U. This is a regression introduced
in r45942 and reported in #20291.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Backport of r46584

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@46585 3c298f89-4303-0410-b956-a3cf2f4a3e73
zsun
rmilecki 2015-08-12 13:30:34 +00:00
parent f0f34ca96f
commit 2349395b77
1 changed files with 6 additions and 6 deletions

View File

@ -279,9 +279,9 @@ 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) {
@@ -186,6 +208,13 @@ int bcm47xx_nvram_getenv(const char *nam
return err;
}
@@ -180,6 +202,13 @@ int bcm47xx_nvram_getenv(const char *nam
if (!name)
return -EINVAL;
+ if (cfe_env) {
+ value = cfe_env_get(nvram_buf, name);
@ -290,6 +290,6 @@ out the configuration than the in kernel cfe config reader.
+ 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);
if (!nvram_len) {
err = nvram_init();
if (err)