[PATCH v2 01/11] arm64: Skip update of an idreg field affected by an override
Marc Zyngier
maz at kernel.org
Mon Mar 2 03:56:42 PST 2026
When computing the new value od an idreg that contains a field
affected by an override, do not update that particular field.
The value computed at init-time must be kept as-is, as that's
what the user has asked for, for better or worse.
Signed-off-by: Marc Zyngier <maz at kernel.org>
---
arch/arm64/kernel/cpufeature.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index c31f8e17732a3..28fc77443ccd3 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -1224,6 +1224,13 @@ static void update_cpu_ftr_reg(struct arm64_ftr_reg *reg, u64 new)
s64 ftr_cur = arm64_ftr_value(ftrp, reg->sys_val);
s64 ftr_new = arm64_ftr_value(ftrp, new);
+ /*
+ * Don't alter the initial value that has been forced
+ * by an override.
+ */
+ if ((reg->override->mask & arm64_ftr_mask(ftrp)) == arm64_ftr_mask(ftrp))
+ continue;
+
if (ftr_cur == ftr_new)
continue;
/* Find a safe value */
--
2.47.3
More information about the linux-arm-kernel
mailing list