vboot: check for recovery mode with VB2_CONTEXT_RECOVERY_MODE
When the specific recovery reason is not needed, just use
(ctx->flags & VB2_CONTEXT_RECOVERY_MODE) to determine whether
or not we are in recovery mode.
BUG=b:124141368
TEST=make clean && make runtests
BRANCH=none
Change-Id: I37f1bc066d970a51dfd7ef38cba519c00e1e764f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2053252
Commit-Queue: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
diff --git a/firmware/2lib/2api.c b/firmware/2lib/2api.c
index f9b8beb..0f57d78 100644
--- a/firmware/2lib/2api.c
+++ b/firmware/2lib/2api.c
@@ -80,7 +80,7 @@
/*
* Check for possible reasons to ask the firmware to make display
- * available. sd->recovery_reason may have been set above by
+ * available. VB2_CONTEXT_RECOVERY_MODE may have been set above by
* vb2_check_recovery. VB2_SD_FLAG_DEV_MODE_ENABLED may have been set
* above by vb2_check_dev_switch. VB2_NV_DIAG_REQUEST may have been
* set during the last boot in recovery mode.
@@ -88,7 +88,7 @@
if (!(ctx->flags & VB2_CONTEXT_DISPLAY_INIT) &&
(vb2_nv_get(ctx, VB2_NV_DISPLAY_REQUEST) ||
sd->flags & VB2_SD_FLAG_DEV_MODE_ENABLED ||
- sd->recovery_reason ||
+ ctx->flags & VB2_CONTEXT_RECOVERY_MODE ||
vb2_nv_get(ctx, VB2_NV_DIAG_REQUEST)))
ctx->flags |= VB2_CONTEXT_DISPLAY_INIT;
/* Mark display as available for downstream vboot and vboot callers. */
diff --git a/firmware/2lib/2auxfw_sync.c b/firmware/2lib/2auxfw_sync.c
index 222b121..ec0c834 100644
--- a/firmware/2lib/2auxfw_sync.c
+++ b/firmware/2lib/2auxfw_sync.c
@@ -30,13 +30,12 @@
*/
static int auxfw_sync_allowed(struct vb2_context *ctx)
{
- struct vb2_shared_data *sd = vb2_get_sd(ctx);
struct vb2_gbb_header *gbb = vb2_get_gbb(ctx);
/* Reasons not to do sync at all */
if (gbb->flags & VB2_GBB_FLAG_DISABLE_AUXFW_SOFTWARE_SYNC)
return 0;
- if (sd->recovery_reason)
+ if (ctx->flags & VB2_CONTEXT_RECOVERY_MODE)
return 0;
return 1;
}
diff --git a/firmware/2lib/2ec_sync.c b/firmware/2lib/2ec_sync.c
index 4fa0932..684c890 100644
--- a/firmware/2lib/2ec_sync.c
+++ b/firmware/2lib/2ec_sync.c
@@ -395,7 +395,6 @@
static int ec_sync_allowed(struct vb2_context *ctx)
{
- struct vb2_shared_data *sd = vb2_get_sd(ctx);
struct vb2_gbb_header *gbb = vb2_get_gbb(ctx);
/* Reasons not to do sync at all */
@@ -403,7 +402,7 @@
return 0;
if (gbb->flags & VB2_GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC)
return 0;
- if (sd->recovery_reason)
+ if (ctx->flags & VB2_CONTEXT_RECOVERY_MODE)
return 0;
return 1;
}
diff --git a/firmware/lib/vboot_display.c b/firmware/lib/vboot_display.c
index 0211a92..4e8c882 100644
--- a/firmware/lib/vboot_display.c
+++ b/firmware/lib/vboot_display.c
@@ -334,7 +334,7 @@
}
/* If we're in dev-mode, show the kernel subkey that we expect, too. */
- if (sd->recovery_reason == VB2_RECOVERY_NOT_REQUESTED &&
+ if (!(ctx->flags & VB2_CONTEXT_RECOVERY_MODE) &&
sd->kernel_key_offset) {
struct vb2_packed_key *key =
vb2_member_of(sd, sd->kernel_key_offset);