efi_loader: pass handle of loaded image
The handle of a loaded image is the value of the handle member of the loaded image info object and not the address of the loaded image info. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
45055aac9d
commit
ea54ad5928
2 changed files with 5 additions and 4 deletions
|
@ -254,7 +254,8 @@ static efi_status_t do_bootefi_exec(void *efi, void *fdt,
|
||||||
dcache_disable(); /* flush cache before switch to EL2 */
|
dcache_disable(); /* flush cache before switch to EL2 */
|
||||||
|
|
||||||
/* Move into EL2 and keep running there */
|
/* Move into EL2 and keep running there */
|
||||||
armv8_switch_to_el2((ulong)entry, (ulong)&loaded_image_info,
|
armv8_switch_to_el2((ulong)entry,
|
||||||
|
(ulong)&loaded_image_info_obj.handle,
|
||||||
(ulong)&systab, 0, (ulong)efi_run_in_el2,
|
(ulong)&systab, 0, (ulong)efi_run_in_el2,
|
||||||
ES_TO_AARCH64);
|
ES_TO_AARCH64);
|
||||||
|
|
||||||
|
@ -263,7 +264,7 @@ static efi_status_t do_bootefi_exec(void *efi, void *fdt,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ret = efi_do_enter(&loaded_image_info, &systab, entry);
|
ret = efi_do_enter(loaded_image_info_obj.handle, &systab, entry);
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
/* image has returned, loaded-image obj goes *poof*: */
|
/* image has returned, loaded-image obj goes *poof*: */
|
||||||
|
@ -350,7 +351,7 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
/* Transfer environment variable efi_selftest as load options */
|
/* Transfer environment variable efi_selftest as load options */
|
||||||
set_load_options(&loaded_image_info, "efi_selftest");
|
set_load_options(&loaded_image_info, "efi_selftest");
|
||||||
/* Execute the test */
|
/* Execute the test */
|
||||||
r = efi_selftest(&loaded_image_info, &systab);
|
r = efi_selftest(loaded_image_info_obj.handle, &systab);
|
||||||
efi_restore_gd();
|
efi_restore_gd();
|
||||||
free(loaded_image_info.load_options);
|
free(loaded_image_info.load_options);
|
||||||
list_del(&loaded_image_info_obj.link);
|
list_del(&loaded_image_info_obj.link);
|
||||||
|
|
|
@ -1317,7 +1317,7 @@ static efi_status_t EFIAPI efi_load_image(bool boot_policy,
|
||||||
|
|
||||||
info->system_table = &systab;
|
info->system_table = &systab;
|
||||||
info->parent_handle = parent_image;
|
info->parent_handle = parent_image;
|
||||||
*image_handle = info;
|
*image_handle = obj->handle;
|
||||||
|
|
||||||
return EFI_EXIT(EFI_SUCCESS);
|
return EFI_EXIT(EFI_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue