arm64: mm: Introduce VA_BITS_MIN
In order to support 52-bit kernel addresses detectable at boot time, the kernel needs to know the most conservative VA_BITS possible should it need to fall back to this quantity due to lack of hardware support. A new compile time constant VA_BITS_MIN is introduced in this patch and it is employed in the KASAN end address, KASLR, and EFI stub. For Arm, if 52-bit VA support is unavailable the fallback is to 48-bits. In other words: VA_BITS_MIN = min (48, VA_BITS) Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Steve Capper <steve.capper@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:

committed by
Will Deacon

parent
99426e5e8c
commit
90ec95cda9
@@ -52,6 +52,13 @@
|
||||
#define PCI_IO_END (VMEMMAP_START - SZ_2M)
|
||||
#define PCI_IO_START (PCI_IO_END - PCI_IO_SIZE)
|
||||
#define FIXADDR_TOP (PCI_IO_START - SZ_2M)
|
||||
#if VA_BITS > 48
|
||||
#define VA_BITS_MIN (48)
|
||||
#else
|
||||
#define VA_BITS_MIN (VA_BITS)
|
||||
#endif
|
||||
#define _VA_START(va) (UL(0xffffffffffffffff) - \
|
||||
(UL(1) << ((va) - 1)) + 1)
|
||||
|
||||
#define KERNEL_START _text
|
||||
#define KERNEL_END _end
|
||||
@@ -74,7 +81,7 @@
|
||||
#define KASAN_THREAD_SHIFT 1
|
||||
#else
|
||||
#define KASAN_THREAD_SHIFT 0
|
||||
#define KASAN_SHADOW_END (VA_START)
|
||||
#define KASAN_SHADOW_END (_VA_START(VA_BITS_MIN))
|
||||
#endif
|
||||
|
||||
#define MIN_THREAD_SHIFT (14 + KASAN_THREAD_SHIFT)
|
||||
|
Reference in New Issue
Block a user