From 6d87e4f33f07323e791f09f4c5798978c1b5e0c8 Mon Sep 17 00:00:00 2001 From: Joel Kitching Date: Thu, 13 Feb 2020 10:43:42 +0800 Subject: 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 Tested-by: Joel Kitching Reviewed-by: Julius Werner --- firmware/2lib/2api.c | 4 ++-- firmware/2lib/2auxfw_sync.c | 3 +-- firmware/2lib/2ec_sync.c | 3 +-- firmware/lib/vboot_display.c | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/firmware/2lib/2api.c b/firmware/2lib/2api.c index f9b8bebb..0f57d78b 100644 --- a/firmware/2lib/2api.c +++ b/firmware/2lib/2api.c @@ -80,7 +80,7 @@ vb2_error_t vb2api_fw_phase1(struct vb2_context *ctx) /* * 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 @@ vb2_error_t vb2api_fw_phase1(struct vb2_context *ctx) 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 222b1214..ec0c8345 100644 --- a/firmware/2lib/2auxfw_sync.c +++ b/firmware/2lib/2auxfw_sync.c @@ -30,13 +30,12 @@ static void display_wait_screen(struct vb2_context *ctx) */ 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 4fa0932c..684c8905 100644 --- a/firmware/2lib/2ec_sync.c +++ b/firmware/2lib/2ec_sync.c @@ -395,7 +395,6 @@ static int ec_will_update_slowly(struct vb2_context *ctx) 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 @@ static int ec_sync_allowed(struct vb2_context *ctx) 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 0211a92b..4e8c8821 100644 --- a/firmware/lib/vboot_display.c +++ b/firmware/lib/vboot_display.c @@ -334,7 +334,7 @@ vb2_error_t VbDisplayDebugInfo(struct vb2_context *ctx) } /* 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); -- cgit v1.2.1