
Don't return error with ret=-ENOENT when the optional ops drv->init is absent but only if env_driver_lookup don't found driver.
This patch correct an issue for the code if (!env_init()) env_load() When only ext4 is supported (CONFIG_ENV_IS_IN_EXT4), as the backend env/ext4.c doesn't define an ops .init
Signed-off-by: Patrick Delaunay patrick.delaunay@st.com ---
env/env.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/env/env.c b/env/env.c index 9237bb9c74..e4df1715e4 100644 --- a/env/env.c +++ b/env/env.c @@ -292,7 +292,10 @@ int env_init(void) int prio;
for (prio = 0; (drv = env_driver_lookup(ENVOP_INIT, prio)); prio++) { - if (!drv->init || !(ret = drv->init())) + ret = 0; + if (drv->init) + ret = drv->init(); + if (!ret) env_set_inited(drv->location);
debug("%s: Environment %s init done (ret=%d)\n", __func__,