Re: [PATCH] arm64: Fix double TCR_T0SZ_OFFSET shift

From: Robin Murphy
Date: Fri Apr 05 2024 - 10:10:55 EST


On 2024-04-02 11:47 am, Seongsu Park wrote:
We have already shifted the value of t0sz in TCR_T0SZ by TCR_T0SZ_OFFSET.
So, the TCR_T0SZ_OFFSET shift here should be removed.

If the shift for assigning the t0sz value to the TCR field is wrong, then the other shift for comparing the same t0sz value to the existing TCR field must also be wrong. Really, this many people involved in writing a patch and still nobody spotted the obvious?

Thanks,
Robin.

Co-developed-by: Leem ChaeHoon <infinite.run@xxxxxxxxx>
Signed-off-by: Leem ChaeHoon <infinite.run@xxxxxxxxx>
Co-developed-by: Gyeonggeon Choi <gychoi@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Gyeonggeon Choi <gychoi@xxxxxxxxxxxxxxxxxx>
Co-developed-by: Soomin Cho <to.soomin@xxxxxxxxx>
Signed-off-by: Soomin Cho <to.soomin@xxxxxxxxx>
Co-developed-by: DaeRo Lee <skseofh@xxxxxxxxx>
Signed-off-by: DaeRo Lee <skseofh@xxxxxxxxx>
Co-developed-by: kmasta <kmasta.study@xxxxxxxxx>
Signed-off-by: kmasta <kmasta.study@xxxxxxxxx>
Signed-off-by: Seongsu Park <sgsu.park@xxxxxxxxxxx>
---
arch/arm64/include/asm/mmu_context.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/mmu_context.h b/arch/arm64/include/asm/mmu_context.h
index c768d16b81a4..58de99836d2e 100644
--- a/arch/arm64/include/asm/mmu_context.h
+++ b/arch/arm64/include/asm/mmu_context.h
@@ -76,7 +76,7 @@ static inline void __cpu_set_tcr_t0sz(unsigned long t0sz)
return;
tcr &= ~TCR_T0SZ_MASK;
- tcr |= t0sz << TCR_T0SZ_OFFSET;
+ tcr |= t0sz;
write_sysreg(tcr, tcr_el1);
isb();
}