diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2013-04-25 17:00:22 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-04-25 17:00:22 -0400 |
commit | 697dfd884438058b15032b0169887c742704434a (patch) | |
tree | 7f14e8e2b1d677d8dc326fd16cfee92282e79ae5 /arch/x86 | |
parent | 0fbd06761f5c17cc9b20e02af60fd7ee9c895996 (diff) | |
parent | f697036b93aa7345d4cbb3c854a76456c0ddac45 (diff) |
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>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/boot/compressed/eboot.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index 8615f7581820..35ee62fccf98 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c | |||
@@ -258,7 +258,7 @@ static efi_status_t setup_efi_vars(struct boot_params *params) | |||
258 | u64 store_size, remaining_size, var_size; | 258 | u64 store_size, remaining_size, var_size; |
259 | efi_status_t status; | 259 | efi_status_t status; |
260 | 260 | ||
261 | if (!sys_table->runtime->query_variable_info) | 261 | if (sys_table->runtime->hdr.revision < EFI_2_00_SYSTEM_TABLE_REVISION) |
262 | return EFI_UNSUPPORTED; | 262 | return EFI_UNSUPPORTED; |
263 | 263 | ||
264 | data = (struct setup_data *)(unsigned long)params->hdr.setup_data; | 264 | 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 | while (data && data->next) | 266 | while (data && data->next) |
267 | data = (struct setup_data *)(unsigned long)data->next; | 267 | data = (struct setup_data *)(unsigned long)data->next; |
268 | 268 | ||
269 | status = efi_call_phys4(sys_table->runtime->query_variable_info, | 269 | status = efi_call_phys4((void *)sys_table->runtime->query_variable_info, |
270 | EFI_VARIABLE_NON_VOLATILE | | 270 | EFI_VARIABLE_NON_VOLATILE | |
271 | EFI_VARIABLE_BOOTSERVICE_ACCESS | | 271 | EFI_VARIABLE_BOOTSERVICE_ACCESS | |
272 | EFI_VARIABLE_RUNTIME_ACCESS, &store_size, | 272 | EFI_VARIABLE_RUNTIME_ACCESS, &store_size, |