mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
EFI: Do not consider OsIndications variable if CONFIG_EFI_IGNORE_OSINDICATIONS is enabled
The EFI_IGNORE_OSINDICATIONS config symbol was introduced as a mechanism to have capsule updates work even on platforms where the SetVariable runtime service was not supported. The current logic requires the OsIndications variable to have been set to a 64 bit value even when the EFI_IGNORE_OSINDICATIONS config is enabled. Return an error code on not being able to read the variable only when EFI_IGNORE_OSINDICATIONS is not enabled. Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
parent
57bd363de7
commit
119fafdefb
1 changed files with 4 additions and 3 deletions
|
@ -1058,14 +1058,15 @@ static void efi_capsule_scan_done(void)
|
|||
*/
|
||||
static efi_status_t check_run_capsules(void)
|
||||
{
|
||||
u64 os_indications;
|
||||
u64 os_indications = 0x0;
|
||||
efi_uintn_t size;
|
||||
efi_status_t r;
|
||||
|
||||
size = sizeof(os_indications);
|
||||
r = efi_get_variable_int(u"OsIndications", &efi_global_variable_guid,
|
||||
NULL, &size, &os_indications, NULL);
|
||||
if (r != EFI_SUCCESS || size != sizeof(os_indications))
|
||||
if (!IS_ENABLED(CONFIG_EFI_IGNORE_OSINDICATIONS) &&
|
||||
(r != EFI_SUCCESS || size != sizeof(os_indications)))
|
||||
return EFI_NOT_FOUND;
|
||||
|
||||
if (os_indications &
|
||||
|
@ -1084,7 +1085,7 @@ static efi_status_t check_run_capsules(void)
|
|||
return EFI_SUCCESS;
|
||||
} else if (IS_ENABLED(CONFIG_EFI_IGNORE_OSINDICATIONS)) {
|
||||
return EFI_SUCCESS;
|
||||
} else {
|
||||
} else {
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue