aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSai Praneeth <sai.praneeth.prakhya@intel.com>2016-12-06 11:16:01 -0800
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2017-01-17 15:49:58 +0000
commit8b447fd116ed6bda9deec2860213d0111e0d6d09 (patch)
tree50909195e82c22d5b0196e6c14c39d29ebbf0085
parent8d8b9c91f2cc17e03b53ac96d14469573202ae14 (diff)
downloadefi-8b447fd116ed6bda9deec2860213d0111e0d6d09.tar.gz
efi: Introduce EFI_MEM_ATTR bit and set it from memory attributes table
UEFI v2.6 introduces a configuration table called EFI_MEMORY_ATTRIBUTES_TABLE which provides additional information about efi runtime regions. Currently this table describes memory protections that may be applied to EFI Runtime code and data regions by kernel. Allocate a EFI_XXX bit to keep track of whether this feature is published by firmware or not. Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com> Reviewed-by: Lee, Chun-Yi <jlee@suse.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Ricardo Neri <ricardo.neri@intel.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Ravi Shankar <ravi.v.shankar@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-rw-r--r--drivers/firmware/efi/memattr.c1
-rw-r--r--include/linux/efi.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/drivers/firmware/efi/memattr.c b/drivers/firmware/efi/memattr.c
index 236004b9a50d32..4021974605070b 100644
--- a/drivers/firmware/efi/memattr.c
+++ b/drivers/firmware/efi/memattr.c
@@ -43,6 +43,7 @@ int __init efi_memattr_init(void)
tbl_size = sizeof(*tbl) + tbl->num_entries * tbl->desc_size;
memblock_reserve(efi.mem_attr_table, tbl_size);
+ set_bit(EFI_MEM_ATTR, &efi.flags);
unmap:
early_memunmap(tbl, sizeof(*tbl));
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 6642c4d9d11d70..b17f73113bd2c1 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -1065,6 +1065,7 @@ extern int __init efi_setup_pcdp_console(char *);
#define EFI_ARCH_1 7 /* First arch-specific bit */
#define EFI_DBG 8 /* Print additional debug info at runtime */
#define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */
+#define EFI_MEM_ATTR 10 /* Did firmware publish EFI_MEMORY_ATTRIBUTES table? */
#ifdef CONFIG_EFI
/*