Re: [PATCH V2 2/2] arm64/sysreg: Replace TCR_EL1 field macros
From: Marc Zyngier <maz@kernel.org>
Date: 2025-08-29 08:13:24
Also in:
kvmarm, lkml
On Fri, 29 Aug 2025 07:02:15 +0100, Anshuman Khandual [off-list ref] wrote:
This just replaces all used TCR_EL1 field macros with tools sysreg variant based fields and subsequently drops them from the header (pgtable-hwdef.h) and moves them into KVM header (asm/kvm_arm.h) for continued usage in KVM. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Marc Zyngier <maz@kernel.org> Cc: Mark Brown <broonie@kernel.org> Cc: kvmarm@lists.linux.dev Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Anshuman Khandual <redacted> --- Changes in V2: - Dropped all TCR_EL1 replacements from KVM code - Moved existing TCR_XXX macros from (asm/pgtable-hwdef.h) into KVM header (asm/kvm_arm.h) for their continued usage arch/arm64/include/asm/assembler.h | 6 +- arch/arm64/include/asm/cputype.h | 2 +- arch/arm64/include/asm/kvm_arm.h | 92 +++++++++++++++++++++++ arch/arm64/include/asm/mmu_context.h | 4 +- arch/arm64/include/asm/pgtable-hwdef.h | 100 +------------------------ arch/arm64/include/asm/pgtable-prot.h | 2 +- arch/arm64/kernel/cpufeature.c | 4 +- arch/arm64/kernel/pi/map_kernel.c | 8 +- arch/arm64/kernel/vmcore_info.c | 2 +- arch/arm64/mm/proc.S | 36 +++++---- tools/arch/arm64/include/asm/cputype.h | 2 +- 11 files changed, 134 insertions(+), 124 deletions(-)
[...]
quoted hunk ↗ jump to hunk
diff --git a/arch/arm64/include/asm/kvm_arm.h b/arch/arm64/include/asm/kvm_arm.h index 1da290aeedce..ad3c305c6374 100644 --- a/arch/arm64/include/asm/kvm_arm.h +++ b/arch/arm64/include/asm/kvm_arm.h@@ -107,6 +107,98 @@ #define MPAMHCR_HOST_FLAGS 0 +#define TCR_T0SZ_OFFSET 0 +#define TCR_T1SZ_OFFSET 16
These are unused by KVM.
+#define TCR_TxSZ(x) (TCR_T0SZ(x) | TCR_T1SZ(x)) +#define TCR_TxSZ_WIDTH 6 +#define TCR_T0SZ_MASK (((UL(1) << TCR_TxSZ_WIDTH) - 1) << TCR_T0SZ_OFFSET) +#define TCR_T1SZ_MASK (((UL(1) << TCR_TxSZ_WIDTH) - 1) << TCR_T1SZ_OFFSET)
[eyeroll] Why do you need to repeat all of this, while you just introduced new definitions? Surely you can write a script that express one in term of the other, and add that to KVM, instead of just blindly moving stuff around? M. -- Without deviation from the norm, progress is not possible.