diff options
| author | Stefano Babic <sbabic@denx.de> | 2014-02-11 12:55:32 +0100 |
|---|---|---|
| committer | Stefano Babic <sbabic@denx.de> | 2014-02-11 12:55:32 +0100 |
| commit | 17998eff9021b7b579c0387e934d8c52603fe247 (patch) | |
| tree | edc3ef069db4cdaf9c718ae60e095caf42cd1d0d /common/env_callback.c | |
| parent | 6ba45cc0f8b46533965219cfd90864a60ec1009b (diff) | |
| parent | e97f9d817e600cd6f43d1d0da76f5787e33a5c56 (diff) | |
Merge branch 'master' of git://git.denx.de/u-boot-arm
Diffstat (limited to 'common/env_callback.c')
| -rw-r--r-- | common/env_callback.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/common/env_callback.c b/common/env_callback.c index 34bb58e4a98..d03fa03a436 100644 --- a/common/env_callback.c +++ b/common/env_callback.c @@ -35,6 +35,9 @@ static struct env_clbk_tbl *find_env_callback(const char *name) return NULL; } +static int first_call = 1; +static const char *callback_list; + /* * Look for a possible callback for a newly added variable * This is called specifically when the variable did not exist in the hash @@ -43,11 +46,15 @@ static struct env_clbk_tbl *find_env_callback(const char *name) void env_callback_init(ENTRY *var_entry) { const char *var_name = var_entry->key; - const char *callback_list = getenv(ENV_CALLBACK_VAR); char callback_name[256] = ""; struct env_clbk_tbl *clbkp; int ret = 1; + if (first_call) { + callback_list = getenv(ENV_CALLBACK_VAR); + first_call = 0; + } + /* look in the ".callbacks" var for a reference to this variable */ if (callback_list != NULL) ret = env_attr_lookup(callback_list, var_name, callback_name); |
