[U-Boot] [PATCHv3] env: Correct case of no sub-init function
Andy Shevchenko
andy.shevchenko at gmail.com
Mon Aug 21 09:05:01 UTC 2017
On Sun, Aug 20, 2017 at 6:41 PM, Tom Rini <trini at konsulko.com> wrote:
> With the change to the environment code to remove the common init stage
> of pointing to the default environment and setting it as valid, combined
> with the change to switch gd->env_valid from 0/1/2 to an enum we now
> must set env_valid to one of the enum values rather than an int. And in
> this case, not only was setting it to an int wrong, it was now the wrong
> value. Finally, in the case of ENV_IS_NOWHERE we must still say that
> our envionrment is invalid after init for things to continue to
> function.
>
> Fixes: 7938822a6b75 ("env: Drop common init() functions")
> Reported-by: Marek Vasut <marek.vasut at gmail.com>
> Reported-by: Andy Shevchenko <andy.shevchenko at gmail.com>
> Signed-off-by: Tom Rini <trini at konsulko.com>
A bit late, but seems it's fixed (Though I'll continue keeping an eye
on behaviour)
Tested-by: Andy Shevchenko <andy.shevchenko at gmail.com>
> ---
> Changes in v3:
> - Actually include changes for env/nowhere.c
> ---
> env/env.c | 2 +-
> env/nowhere.c | 13 +++++++++++++
> 2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/env/env.c b/env/env.c
> index 2b8b9611cfff..8671f13f8d9e 100644
> --- a/env/env.c
> +++ b/env/env.c
> @@ -138,7 +138,7 @@ int env_init(void)
> ret = drv->init();
> if (ret == -ENOENT) {
> gd->env_addr = (ulong)&default_environment[0];
> - gd->env_valid = 0;
> + gd->env_valid = ENV_VALID;
>
> return 0;
> } else if (ret) {
> diff --git a/env/nowhere.c b/env/nowhere.c
> index d60de494e6c4..f654883c8acb 100644
> --- a/env/nowhere.c
> +++ b/env/nowhere.c
> @@ -15,7 +15,20 @@
>
> DECLARE_GLOBAL_DATA_PTR;
>
> +/*
> + * Because we only ever have the default environment available we must mark
> + * it as invalid.
> + */
> +static int env_nowhere_init(void)
> +{
> + gd->env_addr = (ulong)&default_environment[0];
> + gd->env_valid = ENV_INVALID;
> +
> + return 0;
> +}
> +
> U_BOOT_ENV_LOCATION(nowhere) = {
> .location = ENVL_NOWHERE,
> + .init = env_nowhere_init,
> ENV_NAME("nowhere")
> };
> --
> 1.9.1
>
--
With Best Regards,
Andy Shevchenko
More information about the U-Boot
mailing list