On 13.03.2026 08:04, Jan Beulich wrote: > On 13.03.2026 01:01, Andrew Cooper wrote: >> On 12/03/2026 8:43 pm, Kevin Lampis wrote: >>> diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c >>> b/xen/arch/x86/cpu/mcheck/mce_intel.c >>> index 839a0e5ba9..4d6b7d588e 100644 >>> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c >>> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c >>> @@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c) >>> * DisplayFamily_DisplayModel encoding of 06H_EH and above, >>> * a MCA signal is broadcast to all logical processors in the system >>> */ >>> - if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 && >>> - c->x86_model >= 0xe ) >>> - return true; >>> - return false; >>> + return c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH; >>> } >> >> This breaks P4. >> >> It is not safe to write expressions like this, and I've already >> explained why. > > Plus I had asked whether the comparison needs to stay at all, seeing how > Xen has been 64-bit only for a pretty long while.
I realize dropping it altogether would break P4 too. Looks like it wants to be c->family != 0xf (assuming families 18 and 19 are to be included). Jan
