On 07/22/2015 05:59 AM, Jonathan (Zhixiong) Zhang wrote:
From: "Jonathan (Zhixiong) Zhang" <[email protected]>
If the physical address has memory attributes defined by EFI
memmap as EFI_MEMORY_UC, the page protection type is
PROT_DEVICE_nGnRE. Otherwise, the page protection type is
PAGE_KERNEL.
...
[...]
+#ifdef CONFIG_ACPI_APEI
+/*
+ * According to "Table 8 Map: EFI memory types to AArch64 memory types"
+ * of UEFI 2.5 section 2.3.6.1, each EFI memory type is mapped to
+ * corresponding MAIR attribute encoding.
+ */
+static inline pgprot_t arch_apei_get_mem_attribute(phys_addr_t addr)
+{
+ pgprot_t prot;
+
+ prot = efi_mem_attributes(addr);
+ if (prot & EFI_MEMORY_UC)
+ return PROT_DEVICE_nGnRnE;
+ if (prot & EFI_MEMORY_WC)
+ return PROT_NORMAL_NC;
+ if (prot & EFI_MEMORY_WT)
+ return PROT_NORMAL_WT;
+ return PAGE_KERNEL;
+}
The change log is not matching the code here, and the PROT_DEVICE_nGnRE
in the change log is wrong, if you fix that,
Acked-by: Hanjun Guo <[email protected]>
Thanks
Hanjun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/