[PATCH] arm64/mm: Drop wrong writes into TCR2_EL1

Anshuman Khandual posted 1 patch 3 months ago
There is a newer version of this series
arch/arm64/mm/proc.S | 1 -
1 file changed, 1 deletion(-)
[PATCH] arm64/mm: Drop wrong writes into TCR2_EL1
Posted by Anshuman Khandual 3 months ago
Register X0 contains PIE_E1_ASM and should not be written into REG_TCR2_EL1
which could have an adverse impact otherwise. This has remained undetected
till now probably because current value for PIE_E1_ASM (0xcc880e0ac0800000)
clears TCR2_EL1 which again gets set subsequently with 'tcr' after checking
for FEAT_TCRX.

Drop this unwarranted 'msr' which is a stray change from an earlier commit.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Fixes: 7052e808c446 ("arm64/sysreg: Get rid of the TCR2_EL1x SysregFields")
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
This patch applies on v6.16-rc4 and tested with and without FEAT_S1PIE
enabled.

 arch/arm64/mm/proc.S | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S
index 80d470aa469d..54dccfd6aa11 100644
--- a/arch/arm64/mm/proc.S
+++ b/arch/arm64/mm/proc.S
@@ -518,7 +518,6 @@ alternative_else_nop_endif
 	msr	REG_PIR_EL1, x0
 
 	orr	tcr2, tcr2, TCR2_EL1_PIE
-	msr	REG_TCR2_EL1, x0
 
 .Lskip_indirection:
 
-- 
2.25.1
Re: [PATCH] arm64/mm: Drop wrong writes into TCR2_EL1
Posted by Marc Zyngier 3 months ago
On Thu, 03 Jul 2025 06:04:53 +0100,
Anshuman Khandual <anshuman.khandual@arm.com> wrote:
> 
> Register X0 contains PIE_E1_ASM and should not be written into REG_TCR2_EL1
> which could have an adverse impact otherwise. This has remained undetected
> till now probably because current value for PIE_E1_ASM (0xcc880e0ac0800000)
> clears TCR2_EL1 which again gets set subsequently with 'tcr' after checking
> for FEAT_TCRX.
> 
> Drop this unwarranted 'msr' which is a stray change from an earlier commit.

Looks like I re-introduced this when rebasing on top of 926b66e2ebc8c
("arm64: setup: name 'tcr2' register"), which did remove this line.
Might be worth capturing in the commit message.

> 
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Ryan Roberts <ryan.roberts@arm.com>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Fixes: 7052e808c446 ("arm64/sysreg: Get rid of the TCR2_EL1x SysregFields")
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> This patch applies on v6.16-rc4 and tested with and without FEAT_S1PIE
> enabled.
> 
>  arch/arm64/mm/proc.S | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S
> index 80d470aa469d..54dccfd6aa11 100644
> --- a/arch/arm64/mm/proc.S
> +++ b/arch/arm64/mm/proc.S
> @@ -518,7 +518,6 @@ alternative_else_nop_endif
>  	msr	REG_PIR_EL1, x0
>  
>  	orr	tcr2, tcr2, TCR2_EL1_PIE
> -	msr	REG_TCR2_EL1, x0
>  
>  .Lskip_indirection:
>  

Acked-by: Marc Zyngier <maz@kernel.org>

	M.

-- 
Without deviation from the norm, progress is not possible.