summaryrefslogtreecommitdiff
path: root/firmware/lib20/api_kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/lib20/api_kernel.c')
-rw-r--r--firmware/lib20/api_kernel.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/firmware/lib20/api_kernel.c b/firmware/lib20/api_kernel.c
index 3aad5967..99a4cf7f 100644
--- a/firmware/lib20/api_kernel.c
+++ b/firmware/lib20/api_kernel.c
@@ -27,20 +27,12 @@ vb2_error_t vb2api_kernel_phase1(struct vb2_context *ctx)
/* Initialize secure kernel data and read version */
rv = vb2_secdata_kernel_init(ctx);
- if (!rv) {
- rv = vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_VERSIONS,
- &sd->kernel_version_secdata);
- }
-
- if (rv) {
- if (ctx->flags & VB2_CONTEXT_RECOVERY_MODE) {
- /* Ignore failure to get kernel version in recovery */
- sd->kernel_version_secdata = 0;
- } else {
- vb2api_fail(ctx, VB2_RECOVERY_SECDATA_KERNEL_INIT, rv);
- return rv;
- }
+ if (rv && !(ctx->flags & VB2_CONTEXT_RECOVERY_MODE)) {
+ vb2api_fail(ctx, VB2_RECOVERY_SECDATA_KERNEL_INIT, rv);
+ return rv;
}
+ sd->kernel_version_secdata =
+ vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_VERSIONS);
/* Find the key to use to verify the kernel keyblock */
if (ctx->flags & VB2_CONTEXT_RECOVERY_MODE) {
@@ -250,7 +242,6 @@ vb2_error_t vb2api_verify_kernel_data(struct vb2_context *ctx, const void *buf,
vb2_error_t vb2api_kernel_phase3(struct vb2_context *ctx)
{
struct vb2_shared_data *sd = vb2_get_sd(ctx);
- vb2_error_t rv;
/*
* If the kernel is a newer version than in secure storage, and the
@@ -261,10 +252,8 @@ vb2_error_t vb2api_kernel_phase3(struct vb2_context *ctx)
(sd->flags & VB2_SD_FLAG_KERNEL_SIGNED) &&
!(ctx->flags & VB2_CONTEXT_RECOVERY_MODE) &&
(ctx->flags & VB2_CONTEXT_ALLOW_KERNEL_ROLL_FORWARD)) {
- rv = vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_VERSIONS,
+ vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_VERSIONS,
sd->kernel_version);
- if (rv)
- return rv;
sd->kernel_version_secdata = sd->kernel_version;
}