
We can determine the length of the device path in the boot option after it is created. There is no need to keep track of the length while building the device path.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de --- cmd/efidebug.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/cmd/efidebug.c b/cmd/efidebug.c index 67ab06aefc..3398f56962 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -964,7 +964,6 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag, struct efi_load_option lo; void *data = NULL; efi_uintn_t size; - efi_uintn_t fp_size = 0; efi_status_t ret; int r = CMD_RET_SUCCESS;
@@ -1008,8 +1007,6 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag, r = CMD_RET_FAILURE; goto out; } - fp_size += efi_dp_size(file_path) + - sizeof(struct efi_device_path); argc -= 5; argv += 5; } else if (!strcmp(argv[0], "-i")) { @@ -1026,8 +1023,6 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag, } argc -= 3; argv += 3; - fp_size += efi_dp_size(initrd_dp) + - sizeof(struct efi_device_path); } else if (!strcmp(argv[0], "-s")) { if (argc < 1 || lo.optional_data) { r = CMD_RET_USAGE; @@ -1056,7 +1051,8 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag, }
lo.file_path = final_fp; - lo.file_path_length = fp_size; + lo.file_path_length = efi_dp_size(final_fp) + + sizeof(struct efi_device_path);
size = efi_serialize_load_option(&lo, (u8 **)&data); if (!size) { -- 2.30.2