diff options
Diffstat (limited to 'drivers/firmware/efi/efi.c')
-rw-r--r-- | drivers/firmware/efi/efi.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index c297d78f50fd..31fc864eb037 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c | |||
@@ -426,6 +426,24 @@ int __init efi_config_parse_tables(void *config_tables, int count, int sz, | |||
426 | } | 426 | } |
427 | pr_cont("\n"); | 427 | pr_cont("\n"); |
428 | set_bit(EFI_CONFIG_TABLES, &efi.flags); | 428 | set_bit(EFI_CONFIG_TABLES, &efi.flags); |
429 | |||
430 | /* Parse the EFI Properties table if it exists */ | ||
431 | if (efi.properties_table != EFI_INVALID_TABLE_ADDR) { | ||
432 | efi_properties_table_t *tbl; | ||
433 | |||
434 | tbl = early_memremap(efi.properties_table, sizeof(*tbl)); | ||
435 | if (tbl == NULL) { | ||
436 | pr_err("Could not map Properties table!\n"); | ||
437 | return -ENOMEM; | ||
438 | } | ||
439 | |||
440 | if (tbl->memory_protection_attribute & | ||
441 | EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA) | ||
442 | set_bit(EFI_NX_PE_DATA, &efi.flags); | ||
443 | |||
444 | early_memunmap(tbl, sizeof(*tbl)); | ||
445 | } | ||
446 | |||
429 | return 0; | 447 | return 0; |
430 | } | 448 | } |
431 | 449 | ||