mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
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>
This commit is contained in:
parent
b8448051df
commit
d30ba2315a
2 changed files with 16 additions and 18 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue