summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2017-05-08 20:08:02 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2017-05-08 20:08:05 +0200
commitf8a177478c1b79e369ecc65501d9d15ff573339f (patch)
tree109282e5e13479c3a51a93cdbdb33f5ed344ba7e
parenteaf884ba55def055fd81ff3291a1a534fc8bd8f9 (diff)
downloadbarebox-f8a177478c1b79e369ecc65501d9d15ff573339f.tar.gz
globalvar: Fix value of new globalvar when nvvar exists
When a new globalvar with a value is created and the corresponding nvvar exists, then the globalvar gets the value of the nvvar, not from the newly assigned value as expected. nv quux=foo; global quux=bar; echo ${global.quux} Should give "bar", not "foo". Fix this. Reported-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--common/globalvar.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/common/globalvar.c b/common/globalvar.c
index c48e7df..c528b24 100644
--- a/common/globalvar.c
+++ b/common/globalvar.c
@@ -403,11 +403,11 @@ int globalvar_add_simple(const char *name, const char *value)
return PTR_ERR(param);
}
+ globalvar_nv_sync(name);
+
if (value)
dev_set_param(&global_device, name, value);
- globalvar_nv_sync(name);
-
return 0;
}