Commit 7e6b0a2e authored by Sohil Mehta's avatar Sohil Mehta Committed by Ingo Molnar
Browse files

x86/microcode: Update the Intel processor flag scan check



The Family model check to read the processor flag MSR is misleading and
potentially incorrect. It doesn't consider Family while comparing the
model number. The original check did have a Family number but it got
lost/moved during refactoring.

intel_collect_cpu_info() is called through multiple paths such as early
initialization, CPU hotplug as well as IFS image load. Some of these
flows would be error prone due to the ambiguous check.

Correct the processor flag scan check to use a Family number and update
it to a VFM based one to make it more readable.

Signed-off-by: default avatarSohil Mehta <sohil.mehta@intel.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Acked-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
Link: https://lore.kernel.org/r/20250219184133.816753-4-sohil.mehta@intel.com
parent 7e67f361
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@
#define INTEL_ANY			IFM(X86_FAMILY_ANY, X86_MODEL_ANY)

#define INTEL_PENTIUM_PRO		IFM(6, 0x01)
#define INTEL_PENTIUM_III_DESCHUTES	IFM(6, 0x05)

#define INTEL_CORE_YONAH		IFM(6, 0x0E)

+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ void intel_collect_cpu_info(struct cpu_signature *sig)
	sig->pf = 0;
	sig->rev = intel_get_microcode_revision();

	if (x86_model(sig->sig) >= 5 || x86_family(sig->sig) > 6) {
	if (IFM(x86_family(sig->sig), x86_model(sig->sig)) >= INTEL_PENTIUM_III_DESCHUTES) {
		unsigned int val[2];

		/* get processor flags from MSR 0x17 */