lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <867bymeean.wl-maz@kernel.org>
Date: Fri, 29 Aug 2025 09:13:20 +0100
From: Marc Zyngier <maz@...nel.org>
To: Anshuman Khandual <anshuman.khandual@....com>
Cc: linux-arm-kernel@...ts.infradead.org,
	Catalin Marinas <catalin.marinas@....com>,
	Will Deacon <will@...nel.org>,
	Oliver Upton <oliver.upton@...ux.dev>,
	Mark Brown <broonie@...nel.org>,
	Ryan Roberts <ryan.roberts@....com>,
	kvmarm@...ts.linux.dev,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH V2 2/2] arm64/sysreg: Replace TCR_EL1 field macros

On Fri, 29 Aug 2025 07:02:15 +0100,
Anshuman Khandual <anshuman.khandual@....com> 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@....com>
> Cc: Will Deacon <will@...nel.org>
> Cc: Marc Zyngier <maz@...nel.org>
> Cc: Mark Brown <broonie@...nel.org>
> Cc: kvmarm@...ts.linux.dev
> Cc: linux-arm-kernel@...ts.infradead.org
> Cc: linux-kernel@...r.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@....com>
> ---
> 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(-)
>

[...]

> 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.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ