Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754231AbbG0KED (ORCPT ); Mon, 27 Jul 2015 06:04:03 -0400 Received: from eu-smtp-delivery-143.mimecast.com ([146.101.78.143]:41605 "EHLO eu-smtp-delivery-143.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753313AbbG0KEA convert rfc822-to-8bit (ORCPT ); Mon, 27 Jul 2015 06:04:00 -0400 Date: Mon, 27 Jul 2015 11:03:57 +0100 From: Catalin Marinas To: "Jonathan (Zhixiong) Zhang" Cc: Will Deacon , "fu.wei@linaro.org" , "al.stone@linaro.org" , "bp @ alien8 . de Matt Fleming" , "rjw@rjwysocki.net" , "hanjun.guo@linaro.org" , "leif.lindholm@linaro.org" , "ard.biesheuvel@linaro.org" , "linux-kernel@vger.kernel.org" , "linaro-acpi@lists.linaro.org" , "timur@codeaurora.org" Subject: Re: [PATCH V8 4/5] arm64: apei: implement arch_apei_get_mem_attributes() Message-ID: <20150727100357.GB29945@e104818-lin.cambridge.arm.com> References: <1437781869-29721-1-git-send-email-zjzhang@codeaurora.org> <1437781869-29721-5-git-send-email-zjzhang@codeaurora.org> MIME-Version: 1.0 In-Reply-To: <1437781869-29721-5-git-send-email-zjzhang@codeaurora.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-OriginalArrivalTime: 27 Jul 2015 10:03:57.0474 (UTC) FILETIME=[8D737820:01D0C853] X-MC-Unique: dcWE_JPPTayacmO9kIKuZQ-1 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: 8BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2361 Lines: 72 On Sat, Jul 25, 2015 at 12:51:08AM +0100, Jonathan (Zhixiong) Zhang wrote: > From: "Jonathan (Zhixiong) Zhang" > > Table 8 of UEFI 2.5 section 2.3.6.1 defines mappings from EFI > memory types to MAIR attribute encodings for arm64. > > If the physical address has memory attributes defined by EFI > memmap as EFI_MEMORY_[UC|WC|WT], return approprate page protection > type. Otherwise, return PAGE_KERNEL. > > Change-Id: I7f836cae0fb3e74a34e27ac695c2637ffc4cddc6 > Acked-by: Hanjun Guo > Signed-off-by: Jonathan (Zhixiong) Zhang Same comment about the Change-Id. > --- > arch/arm64/include/asm/acpi.h | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h > index 1ff9e6eb5e02..04720f819f0a 100644 > --- a/arch/arm64/include/asm/acpi.h > +++ b/arch/arm64/include/asm/acpi.h > @@ -19,6 +19,11 @@ > #include > #include > > +#ifdef CONFIG_ACPI_APEI > +#include > +#include > +#endif > + > /* Macros for consistency checks of the GICC subtable of MADT */ > #define ACPI_MADT_GICC_LENGTH \ > (acpi_gbl_FADT.header.revision < 6 ? 76 : 80) > @@ -91,4 +95,26 @@ static inline const char *acpi_get_enable_method(int cpu) > { > return acpi_psci_present() ? "psci" : NULL; > } > + > +#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) > +{ > + u64 attr; > + > + attr = efi_mem_attributes(addr); > + if (attr & EFI_MEMORY_UC) > + return PROT_DEVICE_nGnRnE; > + if (attr & EFI_MEMORY_WC) > + return PROT_NORMAL_NC; > + if (attr & EFI_MEMORY_WT) > + return PROT_NORMAL_WT; Just to match the strict mm types, please add __pgprot(PROT_*) here. > + return PAGE_KERNEL; Otherwise: Reviewed-by: Catalin Marinas -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/