diff options
author | Steve Capper <steve.capper@arm.com> | 2019-08-07 17:55:18 +0200 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2019-08-09 12:17:21 +0200 |
commit | 5383cc6efed13784ddb3cff2cc183b6b8c50c8db (patch) | |
tree | e6a050f886096231108a344f6cad53bfa362d169 /arch/arm64/kernel/head.S | |
parent | arm64: mm: Introduce VA_BITS_MIN (diff) | |
download | linux-5383cc6efed13784ddb3cff2cc183b6b8c50c8db.tar.xz linux-5383cc6efed13784ddb3cff2cc183b6b8c50c8db.zip |
arm64: mm: Introduce vabits_actual
In order to support 52-bit kernel addresses detectable at boot time, one
needs to know the actual VA_BITS detected. A new variable vabits_actual
is introduced in this commit and employed for the KVM hypervisor layout,
KASAN, fault handling and phys-to/from-virt translation where there
would normally be compile time constants.
In order to maintain performance in phys_to_virt, another variable
physvirt_offset is introduced.
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>
Diffstat (limited to 'arch/arm64/kernel/head.S')
-rw-r--r-- | arch/arm64/kernel/head.S | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S index ac58c69993ec..6dc7349868d9 100644 --- a/arch/arm64/kernel/head.S +++ b/arch/arm64/kernel/head.S @@ -321,6 +321,11 @@ __create_page_tables: dmb sy dc ivac, x6 // Invalidate potentially stale cache line + adr_l x6, vabits_actual + str x5, [x6] + dmb sy + dc ivac, x6 // Invalidate potentially stale cache line + /* * VA_BITS may be too small to allow for an ID mapping to be created * that covers system RAM if that is located sufficiently high in the |