aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2013-04-25 17:00:22 -0400
committerH. Peter Anvin <hpa@linux.intel.com>2013-04-25 17:00:22 -0400
commit697dfd884438058b15032b0169887c742704434a (patch)
tree7f14e8e2b1d677d8dc326fd16cfee92282e79ae5 /arch/x86
parent0fbd06761f5c17cc9b20e02af60fd7ee9c895996 (diff)
parentf697036b93aa7345d4cbb3c854a76456c0ddac45 (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.c4
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,