vboot: recovery path should finalize work context

Recovery path should finalize work context, and trim
vboot_working_data buffer_size.  Otherwise, depthcharge ingests
the full 12 KB workbuf in recovery path.

BUG=chromium:972528, b:134893812
TEST=Build with vboot_reference CL:1584488.  Check that USB disks
     are properly verified in recovery path.
BRANCH=none

Change-Id: Icf2600d2eb5d846a26aec35a153946dd2f7f128c
Signed-off-by: Joel Kitching <kitching@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33358
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Joel Kitching 2019-06-10 17:37:37 +08:00 committed by Furquan Shaikh
parent b5bea526ec
commit ba50e4885f
1 changed files with 3 additions and 2 deletions

View File

@ -364,8 +364,7 @@ void verstage_main(void)
printk(BIOS_INFO, "Recovery requested (%x)\n", rv); printk(BIOS_INFO, "Recovery requested (%x)\n", rv);
save_if_needed(&ctx); save_if_needed(&ctx);
extend_pcrs(&ctx); /* ignore failures */ extend_pcrs(&ctx); /* ignore failures */
timestamp_add_now(TS_END_VBOOT); goto verstage_main_exit;
return;
} }
printk(BIOS_INFO, "Reboot requested (%x)\n", rv); printk(BIOS_INFO, "Reboot requested (%x)\n", rv);
@ -447,6 +446,8 @@ void verstage_main(void)
printk(BIOS_INFO, "Slot %c is selected\n", is_slot_a(&ctx) ? 'A' : 'B'); printk(BIOS_INFO, "Slot %c is selected\n", is_slot_a(&ctx) ? 'A' : 'B');
vboot_set_selected_region(region_device_region(&fw_main)); vboot_set_selected_region(region_device_region(&fw_main));
verstage_main_exit:
vboot_finalize_work_context(&ctx); vboot_finalize_work_context(&ctx);
timestamp_add_now(TS_END_VBOOT); timestamp_add_now(TS_END_VBOOT);
} }