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);