commit | e60b24e316e7b6c4703146d6f527ba25bbb4d122 | [log] [tgz] |
---|---|---|
author | Sam Protsenko <semen.protsenko@linaro.org> | Wed Nov 06 20:58:30 2024 -0600 |
committer | Tom Rini <trini@konsulko.com> | Sun Nov 17 13:13:22 2024 -0600 |
tree | 8289b05cb86bf86f369177a1428d8d8f8a7aee00 | |
parent | f6711b48397539d3a70e374319ee8287b9f44425 [diff] |
armv8: Fix get_sctlr() return type SCTLR_EL2 is a 64-bit register [1]. Return its value as long (64 bit) instead of int (32 bit) in get_sctlr() to make sure it's not trimmed. [1] https://developer.arm.com/documentation/ddi0595/2021-06/AArch64-Registers/SCTLR-EL2--System-Control-Register--EL2-?lang=en Fixes: 0ae7653128c8 ("arm64: core support") Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c index e6be635..5d6953f 100644 --- a/arch/arm/cpu/armv8/cache_v8.c +++ b/arch/arm/cpu/armv8/cache_v8.c
@@ -825,7 +825,7 @@ void dcache_disable(void) { - uint32_t sctlr; + unsigned long sctlr; sctlr = get_sctlr();
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index 52f6c9b..dbf9ab4 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h
@@ -171,7 +171,7 @@ return 3 & (el >> 2); } -static inline unsigned int get_sctlr(void) +static inline unsigned long get_sctlr(void) { unsigned int el; unsigned long val;