On Wed, Jan 20, 2021 at 03:45:16PM +0100, Marek Vasut wrote: > 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 <[email protected]> > Tested-By: Tim Harvey <[email protected]>
Applied to u-boot/master, thanks! -- Tom
signature.asc
Description: PGP signature

