[tip: x86/cpu] x86/cpu: Initialize boot CPU cpuinfo defaults early
From: tip-bot2 for Ihor Solodrai
Date: Wed Sep 16 2026 - 22:01:25 EST
The following commit has been merged into the x86/cpu branch of tip:
Commit-ID: 7a762b51a149b7bfe431a7571bc7df4beea52e5c
Gitweb: https://git.kernel.org/tip/7a762b51a149b7bfe431a7571bc7df4beea52e5c
Author: Ihor Solodrai <ihor.solodrai@xxxxxxxxx>
AuthorDate: Wed, 16 Sep 2026 12:52:00 -07:00
Committer: Borislav Petkov (AMD) <bp@xxxxxxxxx>
CommitterDate: Thu, 17 Sep 2026 01:57:26 +02:00
x86/cpu: Initialize boot CPU cpuinfo defaults early
early_identify_cpu() clears the capability array, the CPUID table and
extended_cpuid_level, but the architectural defaults for the rest of struct
cpuinfo_x86 are set only later, in identify_cpu().
Use the same defaults from the start, so that the boot CPU does not
depend on a later reset to end up with the right ones.
Signed-off-by: Ihor Solodrai <ihor.solodrai@xxxxxxxxx>
Signed-off-by: Borislav Petkov (AMD) <bp@xxxxxxxxx>
Link: https://patch.msgid.link/20260916195203.1099646-3-ihor.solodrai@xxxxxxxxx
---
arch/x86/kernel/cpu/common.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 173748a..d1a949a 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1814,16 +1814,15 @@ static void init_cpu_info(struct cpuinfo_x86 *c)
* Do minimum CPU detection early.
* Fields really needed: vendor, cpuid_level, family, model, mask,
* cache alignment.
- * The others are not touched to avoid unwanted side effects.
+ * The others are reset to their defaults here and only filled in later,
+ * by identify_cpu().
*
* WARNING: this function is only called on the boot CPU. Don't add code
* here that is supposed to run on all CPUs.
*/
static void __init early_identify_cpu(struct cpuinfo_x86 *c)
{
- memset(&c->x86_capability, 0, sizeof(c->x86_capability));
- memset(&c->cpuid, 0, sizeof(c->cpuid));
- c->extended_cpuid_level = 0;
+ init_cpu_info(c);
if (!cpuid_feature())
identify_cpu_without_cpuid(c);