x86/S3: restore MCE (APs) init

MCE init for APs was broken when CPU feature re-checking was added. At the
same time make sure we don't bypass setup_doitm() (and whatever else may
be added to the bottom of identify_cpu()).

Fixes: bb502a8ca5 ("x86: check feature flags after resume")
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
Jan Beulich committed 2026-03-24 12:05:42 +01:00
1 parent 4e9d9e7cc9
commit 5ebd4dd141
1 file changed
+7 -3
+7 -3
View File
@@ -642,16 +642,20 @@ void identify_cpu(struct cpuinfo_x86 *c)
smp_processor_id());
}
if (system_state == SYS_STATE_resume)
return;
if (system_state == SYS_STATE_resume) {
unsigned int cpu = smp_processor_id();
/* The BSP has this done right from enter_state(). */
if (cpu)
mcheck_init(&cpu_data[cpu], false);
}
/*
* On SMP, boot_cpu_data holds the common feature set between
* all CPUs; so make sure that we indicate which features are
* common between the CPUs. The first time this routine gets
* executed, c == &boot_cpu_data.
*/
if ( c != &boot_cpu_data ) {
else if (c != &boot_cpu_data) {
/* AND the already accumulated flags with these */
for ( i = 0 ; i < NCAPINTS ; i++ )
boot_cpu_data.x86_capability[i] &= c->x86_capability[i];
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.