summaryrefslogtreecommitdiff
path: root/env
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2025-10-21 14:37:01 -0600
committerTom Rini <[email protected]>2025-10-24 13:47:50 -0600
commitcf262e16080abcd587f47d0bbc8fa84558abcf89 (patch)
treec43f37eb8778d5d37a61190a04a6d04a8870cdb7 /env
parent38f40e6de6029686356a1b786087385ae974d354 (diff)
env: fat, ubi: Fix gd->env_valid for the first write
As resolved and explained in detail in commit e589d5822cac ("env: spi: Fix gd->env_valid for the first write") and archived discussion there is a corner case where we don't do the right thing with redundant environments. This same exact check was present in the mmc code and resolved with commit 813a0df27a8a ("env: Invert gd->env_valid for env_mmc_save") and in the discussion of that patch, I noted that both fat and ubi (and at the time, sf) were doing the same thing. Take the time now to correct fat and ubi environment. Signed-off-by: Tom Rini <[email protected]>
Diffstat (limited to 'env')
-rw-r--r--env/fat.c2
-rw-r--r--env/ubi.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/env/fat.c b/env/fat.c
index 58c279ff769..7e164822383 100644
--- a/env/fat.c
+++ b/env/fat.c
@@ -104,7 +104,7 @@ static int env_fat_save(void)
}
#ifdef CONFIG_ENV_REDUNDANT
- gd->env_valid = (gd->env_valid == ENV_REDUND) ? ENV_VALID : ENV_REDUND;
+ gd->env_valid = gd->env_valid == ENV_VALID ? ENV_REDUND : ENV_VALID;
#endif
return 0;
diff --git a/env/ubi.c b/env/ubi.c
index f424b1a16e8..59bd96feb48 100644
--- a/env/ubi.c
+++ b/env/ubi.c
@@ -72,7 +72,7 @@ static int env_ubi_save(void)
puts("done\n");
- gd->env_valid = gd->env_valid == ENV_REDUND ? ENV_VALID : ENV_REDUND;
+ gd->env_valid = gd->env_valid == ENV_VALID ? ENV_REDUND : ENV_VALID;
return 0;
}