u-boot/env
Marek Vasut 5557eec01c env: Fix invalid env handling in env_init()
This fixes the case where there are multiple environment drivers, one of
them is the default environment one, and it is followed by an environment
driver which does not implement .init() callback. The default environment
driver sets gd->env_valid to ENV_INVALID and returns 0 from its .init()
callback implementation, which is valid behavior for default environment.

Since the subsequent environment driver does not implement .init(), it
also does not modify the $ret variable in the loop. Therefore, the loop
is exited with gd->env_valid=ENV_INVALID and ret=0, which means that the
code further down in env_init() will not reset the environment to the
default one, which is incorrect.

This patch sets the $ret variable back to -ENOENT in case the env_valid
is set to ENV_INVALID by an environment driver, so that the environment
would be correctly reset back to default one, unless a subsequent driver
loads a valid environment.

Signed-off-by: Marek Vasut <marex@denx.de>
Tested-By: Tim Harvey <tharvey@gateworks.com>
2021-04-16 13:37:07 -04:00
..
attr.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
callback.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
common.c env: increment redund flag on read fail 2021-04-16 11:55:55 -04:00
eeprom.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
embedded.c env: Finish migration of common ENV options 2019-11-20 18:32:09 -05:00
env.c env: Fix invalid env handling in env_init() 2021-04-16 13:37:07 -04:00
ext4.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
fat.c env/fat.c: support redund environment 2021-04-16 13:37:06 -04:00
flags.c env: Fix warning when forcing environment without ENV_ACCESS_IGNORE_FORCE 2021-04-16 11:55:55 -04:00
flash.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
Kconfig env/fat.c: support redund environment 2021-04-16 13:37:06 -04:00
Makefile env: remove callback.o for an SPL build 2020-04-24 10:09:59 -04:00
mmc.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
nand.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
nowhere.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
nvram.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
onenand.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
remote.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sata.c env: Discern environment coming from external storage 2020-07-31 10:13:00 -04:00
sf.c env: increment redund flag on read fail 2021-04-16 11:55:55 -04:00
ubi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00