summaryrefslogtreecommitdiff
path: root/common/rollback.c
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2020-05-15 09:54:16 -0700
committerCommit Bot <commit-bot@chromium.org>2020-05-29 22:18:46 +0000
commit083d64cdac4b99cc59052dcb6e4dc278988a5c6c (patch)
tree1d96347fb6be96b2fc462800945c97ef09142f2f /common/rollback.c
parent87063754d48a046ad9a96149996fb3cf1e02f71c (diff)
downloadchrome-ec-083d64cdac4b99cc59052dcb6e4dc278988a5c6c.tar.gz
rollback: rollback region must be unlocked in order to erase it
BRANCH=none BUG=b:151105339, b:155229277 TEST=Compile and flash "rollback" test on dragonclaw with region 0 On console: "runtest" => Reboots with "Data access violation, mfar = 8020000" => PASS TEST=Compile and flash "rollback" test on dragonclaw with region 1 On console: "runtest" => Reboots with "Data access violation, mfar = 8040000" => PASS TEST=Compile and flash "rollback" test on dragontalon with region 0 On console: "runtest" => Reboots with "Data access violation, mfar = 80c0000" => PASS TEST=Compile and flash "rollback" test on dragontalon with region 1 On console: "runtest" => Reboots with "Data access violation, mfar = 80e0000" => PASS Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I1cf42fec99fa08932c2accc4604e829aaefe076f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2207998 Tested-by: Yicheng Li <yichengli@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'common/rollback.c')
-rw-r--r--common/rollback.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/common/rollback.c b/common/rollback.c
index b448f0514f..d4f206b2b6 100644
--- a/common/rollback.c
+++ b/common/rollback.c
@@ -324,12 +324,13 @@ static int rollback_update(int32_t next_min_version,
goto out;
}
+ unlock_rollback();
if (flash_erase(offset, erase_size)) {
ret = EC_ERROR_UNKNOWN;
+ lock_rollback();
goto out;
}
- unlock_rollback();
ret = flash_write(offset, sizeof(block), block);
lock_rollback();