[PATCH 0/5] arm64: some 52-bit cleanups
Ard Biesheuvel
ardb at kernel.org
Wed Mar 10 17:15:10 GMT 2021
This work was triggered by Mark Salter's report about a regression
regarding the programmed size of the ID map page tables.
The first patch switches the early ID map population code to default to
a 48-bit range on kernels built with 52-bit VA support, and only switch
to 52-bit if the placement of the kernel requires it. This should address
the regressions reported by Mark. This patch should be suitable for being
backported to -stable.
The remaining patches are cleanups that remove and/or simplify the 52-bit
VA support, and disable some parts in configurations that don't need it.
Patch #5 adds back the logic to use a 52-bit VA ID map on 52-bit VA capable
hardware, which we might consider if it is worthwhile for some reason to
elide the TCR_EL1 updates that result from having ID map and user space VA
ranges of different size.
Cc: Mark Salter <msalter at redhat.com>
Cc: Will Deacon <will at kernel.org>
Cc: James Morse <james.morse at arm.com>
Cc: Catalin Marinas <catalin.marinas at arm.com>
Cc: Mark Rutland <mark.rutland at arm.com>
Cc: Steve Capper <steve.capper at arm.com>
Cc: Anshuman Khandual <anshuman.khandual at arm.com>
Ard Biesheuvel (5):
arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds
arm64: mm: remove unused __cpu_uses_extended_idmap[_level()]
arm64: mm: use a compile time constant for vabits_actual when possible
arm64: mm: get rid of idmap_ptrs_per_pgd handling
arm64: mm: switch to 52-bit ID map on 52-bit VA capable systems
arch/arm64/include/asm/memory.h | 4 +++
arch/arm64/include/asm/mmu_context.h | 18 --------------
arch/arm64/kernel/head.S | 26 +++++++++-----------
arch/arm64/mm/mmu.c | 5 ++--
4 files changed, 18 insertions(+), 35 deletions(-)
--
2.30.1
More information about the linux-arm-kernel
mailing list