Re: [PATCH V7 4/5] arm64: apei: implement arch_apei_get_mem_attributes()

From: Hanjun Guo
Date: Thu Jul 23 2015 - 22:59:30 EST


On 07/22/2015 05:59 AM, Jonathan (Zhixiong) Zhang wrote:
From: "Jonathan (Zhixiong) Zhang" <zjzhang@xxxxxxxxxxxxxx>

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 <hanjun.guo@xxxxxxxxxx>

Thanks
Hanjun

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/