diff options
author | Yu-Ping Wu <yupingso@chromium.org> | 2019-11-14 11:38:44 +0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-11-20 13:25:05 +0000 |
commit | ea544574d06e8a149c447b35c5e8fba96e61152a (patch) | |
tree | a9f9d50f0ab3e9e82576ec70e44001a90c172ce9 | |
parent | a0e1e596f894416c9db9eefe5b742cb4fad23a00 (diff) | |
download | coreboot-ea544574d06e8a149c447b35c5e8fba96e61152a.tar.xz |
security/vboot: Remove buffer_size from struct vboot_working_data
Since buffer_size is no longer used, remove it from struct
vboot_working_data.
BRANCH=none
BUG=chromium:1021452
TEST=emerge-kukui coreboot
Change-Id: Ie770e89b4a45e0ec703d5bbb8fb6a298ce915056
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/36844
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
-rw-r--r-- | src/lib/coreboot_table.c | 9 | ||||
-rw-r--r-- | src/security/vboot/common.c | 14 | ||||
-rw-r--r-- | src/security/vboot/misc.h | 1 |
3 files changed, 11 insertions, 13 deletions
diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c index d3576e6a32..241d8e1550 100644 --- a/src/lib/coreboot_table.c +++ b/src/lib/coreboot_table.c @@ -227,7 +227,14 @@ static void lb_vboot_workbuf(struct lb_header *header) vbwb->tag = LB_TAG_VBOOT_WORKBUF; vbwb->size = sizeof(*vbwb); vbwb->range_start = (uintptr_t)wd + wd->buffer_offset; - vbwb->range_size = wd->buffer_size; + /* + * TODO(chromium:1021452): Since cbmem size of vboot workbuf is now + * always a known value, we hardcode the value of range_size here. + * Ultimately we'll want to move this to add_cbmem_pointers() below, + * but we'll have to get rid of the vboot_working_data struct first. + */ + vbwb->range_size = VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE - + wd->buffer_offset; } __weak uint32_t board_id(void) { return UNDEFINED_STRAPPING_ID; } diff --git a/src/security/vboot/common.c b/src/security/vboot/common.c index 043748cbef..3f57602cb1 100644 --- a/src/security/vboot/common.c +++ b/src/security/vboot/common.c @@ -73,11 +73,11 @@ struct vb2_context *vboot_get_context(void) */ memset(wd, 0, sizeof(*wd)); wd->buffer_offset = ALIGN_UP(sizeof(*wd), 16); - wd->buffer_size = VB2_FIRMWARE_WORKBUF_RECOMMENDED_SIZE - - wd->buffer_offset; /* Initialize vb2_shared_data and friends. */ - assert(vb2api_init(vboot_get_workbuf(wd), wd->buffer_size, + assert(vb2api_init(vboot_get_workbuf(wd), + VB2_FIRMWARE_WORKBUF_RECOMMENDED_SIZE - + wd->buffer_offset, vboot_ctx_ptr) == VB2_SUCCESS); return *vboot_ctx_ptr; @@ -137,14 +137,6 @@ static void vboot_migrate_cbmem(int unused) cbmem_add(CBMEM_ID_VBOOT_WORKBUF, cbmem_size); assert(wd_cbmem != NULL); memcpy(wd_cbmem, wd_preram, sizeof(struct vboot_working_data)); - /* - * TODO(chromium:1021452): buffer_size is uint16_t and not large enough - * to hold the kernel verification workbuf size. The only code which - * reads this value is in lb_vboot_workbuf() for lb_range->range_size. - * This value being zero doesn't cause any problems, since it is never - * read downstream. Fix or deprecate vboot_working_data. - */ - wd_cbmem->buffer_size = 0; vb2api_relocate(vboot_get_workbuf(wd_cbmem), vboot_get_workbuf(wd_preram), cbmem_size - wd_cbmem->buffer_offset, diff --git a/src/security/vboot/misc.h b/src/security/vboot/misc.h index 812bbe7267..e438848635 100644 --- a/src/security/vboot/misc.h +++ b/src/security/vboot/misc.h @@ -39,7 +39,6 @@ struct vboot_working_data { struct selected_region selected_region; /* offset of the buffer from the start of this struct */ uint16_t buffer_offset; - uint16_t buffer_size; }; /* |