summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@st.com>2020-07-28 11:51:17 +0200
committerTom Rini <trini@konsulko.com>2020-07-30 10:38:51 -0400
commit6c575fe8d6c0bb0f55860dfbd0c8e7a85a1a6457 (patch)
tree0124035e702a8eef350e6fc03be9eca108c7d7b8
parent4b4d8849f65961c5f4958a0cef53699e116a9ef1 (diff)
downloadu-boot-6c575fe8d6c0bb0f55860dfbd0c8e7a85a1a6457.tar.gz
env: correctly handle env_load_prio
Only update gd->env_load_prio in generic function env_load() and no more in the weak function env_get_location() which is called in many place (for example in env_driver_lookup, even for ENVOP_SAVE operation). This patch is a preliminary step to use env_driver_lookup()/ env_get_location() in new function env_select() without updating gd->env_load_prio. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
-rw-r--r--env/env.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/env/env.c b/env/env.c
index 2e64346438..bcc68c6bce 100644
--- a/env/env.c
+++ b/env/env.c
@@ -131,8 +131,6 @@ __weak enum env_location env_get_location(enum env_operation op, int prio)
if (prio >= ARRAY_SIZE(env_locations))
return ENVL_UNKNOWN;
- gd->env_load_prio = prio;
-
return env_locations[prio];
}
@@ -204,6 +202,8 @@ int env_load(void)
ret = drv->load();
if (!ret) {
printf("OK\n");
+ gd->env_load_prio = prio;
+
return 0;
} else if (ret == -ENOMSG) {
/* Handle "bad CRC" case */
@@ -227,7 +227,8 @@ int env_load(void)
debug("Selecting environment with bad CRC\n");
else
best_prio = 0;
- env_get_location(ENVOP_LOAD, best_prio);
+
+ gd->env_load_prio = best_prio;
return -ENODEV;
}