diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2016-02-25 15:53:44 +0000 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2016-02-25 16:01:26 +0000 |
commit | cac4b8cdf5a20a11d1725b832350c044d9e13d29 (patch) | |
tree | cc236303f0fcb3d6df85672470dcc8ee89a3ff0e /arch/arm64/include | |
parent | 28c5dcb22f90113dea101b0421bc6971bccb7a74 (diff) | |
download | linux-cac4b8cdf5a20a11d1725b832350c044d9e13d29.tar.gz |
arm64: Fix building error with 16KB pages and 36-bit VA
In such configuration, Linux uses only two pages of page tables and
__pud_populate() should not be used. However, the BUILD_BUG() triggers
since pud_sect() is still defined and the compiler cannot eliminate such
code, even though at run-time it should not be triggered. This patch
extends the #ifdef ARM64_64K_PAGES condition for pud_sect to include
PGTABLE_LEVELS < 3.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/include')
-rw-r--r-- | arch/arm64/include/asm/pgtable.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index a440f5a85d08..16438dd8916a 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -395,7 +395,7 @@ extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, #define pmd_sect(pmd) ((pmd_val(pmd) & PMD_TYPE_MASK) == \ PMD_TYPE_SECT) -#ifdef CONFIG_ARM64_64K_PAGES +#if defined(CONFIG_ARM64_64K_PAGES) || CONFIG_PGTABLE_LEVELS < 3 #define pud_sect(pud) (0) #define pud_table(pud) (1) #else |