]> xenbits.xensource.com Git - xen.git/commitdiff
xen/arm: cpuerrata: Actually check errata on non-boot CPUs
authorJulien Grall <julien.grall@arm.com>
Wed, 14 Feb 2018 12:22:23 +0000 (12:22 +0000)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 21 Feb 2018 01:18:05 +0000 (17:18 -0800)
The cpu errata framework was introduced in commit 8b01f6364f "xen/arm:
Detect silicon revision and set cap bits accordingly" and was meant to
detect errata present on any CPUs (via check_local_cpu_errata). However,
the function to check the MIDR (is_affected_midr_range) mistakenly
always use the boot CPU MIDR.

Fix is_affected_midr_range to use the current CPU MIDR.

Reported-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
(cherry picked from commit 27196d4cc917d91b5b5daee50173565139ca9c9d)

xen/arch/arm/cpuerrata.c

index 9329864ddf4a6533f2652b3b881e301dc9e74964..eaa91e0ece1b830d1ee38316a8d93fdba339f6b0 100644 (file)
@@ -226,7 +226,7 @@ static int enable_ic_inv_hardening(void *data)
 static bool_t __maybe_unused
 is_affected_midr_range(const struct arm_cpu_capabilities *entry)
 {
-    return MIDR_IS_CPU_MODEL_RANGE(boot_cpu_data.midr.bits, entry->midr_model,
+    return MIDR_IS_CPU_MODEL_RANGE(current_cpu_data.midr.bits, entry->midr_model,
                                    entry->midr_range_min,
                                    entry->midr_range_max);
 }