Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: move {PAGE,CONT}_SHIFT into Kconfig

In some cases (e.g. the awk for CONFIG_RANDOMIZE_TEXT_OFFSET) we would
like to make use of PAGE_SHIFT outside of code that can include the
usual header files.

Add a new CONFIG_ARM64_PAGE_SHIFT for this, likewise with
ARM64_CONT_SHIFT for consistency.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>

authored by

Mark Rutland and committed by
Will Deacon
030c4d24 48dd73c5

+14 -10
+12
arch/arm64/Kconfig
··· 113 113 config MMU 114 114 def_bool y 115 115 116 + config ARM64_PAGE_SHIFT 117 + int 118 + default 16 if ARM64_64K_PAGES 119 + default 14 if ARM64_16K_PAGES 120 + default 12 121 + 122 + config ARM64_CONT_SHIFT 123 + int 124 + default 5 if ARM64_64K_PAGES 125 + default 7 if ARM64_16K_PAGES 126 + default 4 127 + 116 128 config ARCH_MMAP_RND_BITS_MIN 117 129 default 14 if ARM64_64K_PAGES 118 130 default 16 if ARM64_16K_PAGES
+2 -10
arch/arm64/include/asm/page.h
··· 23 23 24 24 /* PAGE_SHIFT determines the page size */ 25 25 /* CONT_SHIFT determines the number of pages which can be tracked together */ 26 - #ifdef CONFIG_ARM64_64K_PAGES 27 - #define PAGE_SHIFT 16 28 - #define CONT_SHIFT 5 29 - #elif defined(CONFIG_ARM64_16K_PAGES) 30 - #define PAGE_SHIFT 14 31 - #define CONT_SHIFT 7 32 - #else 33 - #define PAGE_SHIFT 12 34 - #define CONT_SHIFT 4 35 - #endif 26 + #define PAGE_SHIFT CONFIG_ARM64_PAGE_SHIFT 27 + #define CONT_SHIFT CONFIG_ARM64_CONT_SHIFT 36 28 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) 37 29 #define PAGE_MASK (~(PAGE_SIZE-1)) 38 30