Commit 697dfd88 authored by H. Peter Anvin's avatar H. Peter Anvin

Merge tag 'efi-urgent' into x86/urgent

 * The EFI variable anti-bricking algorithm merged in -rc8 broke booting
   on some Apple machines because they implement EFI spec 1.10, which
   doesn't provide a QueryVariableInfo() runtime function and the logic
   used to check for the existence of that function was insufficient.
   Fix from Josh Boyer.

 * The anti-bricking algorithm also introduced a compiler warning on
   32-bit. Fix from Borislav Petkov.
Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
parents 0fbd0676 f697036b
...@@ -258,7 +258,7 @@ static efi_status_t setup_efi_vars(struct boot_params *params) ...@@ -258,7 +258,7 @@ static efi_status_t setup_efi_vars(struct boot_params *params)
u64 store_size, remaining_size, var_size; u64 store_size, remaining_size, var_size;
efi_status_t status; efi_status_t status;
if (!sys_table->runtime->query_variable_info) if (sys_table->runtime->hdr.revision < EFI_2_00_SYSTEM_TABLE_REVISION)
return EFI_UNSUPPORTED; return EFI_UNSUPPORTED;
data = (struct setup_data *)(unsigned long)params->hdr.setup_data; data = (struct setup_data *)(unsigned long)params->hdr.setup_data;
...@@ -266,7 +266,7 @@ static efi_status_t setup_efi_vars(struct boot_params *params) ...@@ -266,7 +266,7 @@ static efi_status_t setup_efi_vars(struct boot_params *params)
while (data && data->next) while (data && data->next)
data = (struct setup_data *)(unsigned long)data->next; data = (struct setup_data *)(unsigned long)data->next;
status = efi_call_phys4(sys_table->runtime->query_variable_info, status = efi_call_phys4((void *)sys_table->runtime->query_variable_info,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS, &store_size, EFI_VARIABLE_RUNTIME_ACCESS, &store_size,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment