[patch V4 14/30] x86/microcode/amd: Read revision from hardware in collect_cpu_info_amd()

From: Thomas Gleixner
Date: Mon Oct 02 2023 - 08:00:29 EST


Prepare to decrapify the core initialization logic which invokes
microcode_ops::apply_microcode() several times just to set
cpu_data::microcode.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
V2: New patch
---
arch/x86/kernel/cpu/microcode/amd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -634,12 +634,12 @@ void reload_ucode_amd(unsigned int cpu)

static int collect_cpu_info_amd(int cpu, struct cpu_signature *csig)
{
- struct cpuinfo_x86 *c = &cpu_data(cpu);
struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
+ u32 dummy __always_unused;
struct ucode_patch *p;

csig->sig = cpuid_eax(0x00000001);
- csig->rev = c->microcode;
+ rdmsr(MSR_AMD64_PATCH_LEVEL, csig->rev, dummy);

/*
* a patch could have been loaded early, set uci->mc so that