diff options
author | Nicholas Faustini <nicholas.faustini@azcomtech.com> | 2018-07-23 10:01:07 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-07-30 07:18:47 -0400 |
commit | d30ba2315ae3dbb886187b6871e9d35b0fb03a11 (patch) | |
tree | d3982433a85a57e5e6061668d83b5dd6065ae193 /include/asm-generic | |
parent | b8448051dfc26eb2f15e905f00f8edbd1da7dfb9 (diff) | |
download | u-boot-d30ba2315ae3dbb886187b6871e9d35b0fb03a11.tar.gz |
u-boot: remove driver lookup loop from env_save()
When called with ENVOP_SAVE, env_get_location() only returns the
gd->env_load_location variable without actually checking for
the environment location and priority.
This behaviour causes env_save() to fall into an infinite loop when
the low-level drv->save() call fails.
The env_save() function should not loop through the environment
location list but it should save the environment into the location
stored in gd->env_load_location by the last env_load() call.
Signed-off-by: Nicholas Faustini <nicholas.faustini@azcomtech.com>
Reviewed-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/global_data.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h index 0fd4900392..c83fc01b76 100644 --- a/include/asm-generic/global_data.h +++ b/include/asm-generic/global_data.h @@ -50,7 +50,7 @@ typedef struct global_data { unsigned long env_addr; /* Address of Environment struct */ unsigned long env_valid; /* Environment valid? enum env_valid */ unsigned long env_has_init; /* Bitmask of boolean of struct env_location offsets */ - int env_load_location; + int env_load_prio; /* Priority of the loaded environment */ unsigned long ram_base; /* Base address of RAM used by U-Boot */ unsigned long ram_top; /* Top address of RAM used by U-Boot */ |