smp_store_cpu_info() doesn't call identify_cpu() again during S3 resume,
hence it is wrong to overwrite APs' data using boot_cpu_data. With
7126b7f806d54 ("x86/CPU: re-work populating of cpu_data[]") this now
results in a crash, as the cpu_to_socket() use in smp_store_cpu_info()
then obtains a bad socket number, much like was already observed in [1].[1] https://lists.xen.org/archives/html/xen-devel/2025-06/msg01879.html Fixes: bb502a8ca5925 ("x86: check feature flags after resume") Signed-off-by: Jan Beulich <[email protected]> --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -370,7 +370,9 @@ void asmlinkage start_secondary(void) cpu_init(); - initialize_cpu_data(cpu); + /* During resume, must not clear previously collected data. */ + if ( system_state != SYS_STATE_resume ) + initialize_cpu_data(cpu); microcode_update_one();
