You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
@@ -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)
|
|||||||
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,
|
||||||
|
|||||||
Reference in New Issue
Block a user