bootflow: bootmeth_efi: set bflow->fname from bootfile name
We need to set boot->fname before calling efi_set_bootdev otherwise this crashes as bflow->fname is null. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Shantur Rathore <i@shantur.com>
This commit is contained in:
committed by
Tom Rini
parent
c5440a6ae8
commit
e31317e161
+7
-1
@@ -323,7 +323,7 @@ static int distro_efi_read_bootflow_net(struct bootflow *bflow)
|
||||
char file_addr[17], fname[256];
|
||||
char *tftp_argv[] = {"tftp", file_addr, fname, NULL};
|
||||
struct cmd_tbl cmdtp = {}; /* dummy */
|
||||
const char *addr_str, *fdt_addr_str;
|
||||
const char *addr_str, *fdt_addr_str, *bootfile_name;
|
||||
int ret, arch, size;
|
||||
ulong addr, fdt_addr;
|
||||
char str[36];
|
||||
@@ -360,6 +360,12 @@ static int distro_efi_read_bootflow_net(struct bootflow *bflow)
|
||||
return log_msg_ret("sz", -EINVAL);
|
||||
bflow->size = size;
|
||||
|
||||
/* bootfile should be setup by dhcp*/
|
||||
bootfile_name = env_get("bootfile");
|
||||
if (!bootfile_name)
|
||||
return log_msg_ret("bootfile_name", ret);
|
||||
bflow->fname = strdup(bootfile_name);
|
||||
|
||||
/* do the hideous EFI hack */
|
||||
efi_set_bootdev("Net", "", bflow->fname, map_sysmem(addr, 0),
|
||||
bflow->size);
|
||||
|
||||
Reference in New Issue
Block a user