On Fri, 11 Jul 2025, Borislav Petkov wrote:
On Fri, Jul 11, 2025 at 03:15:22PM +0200, Thomas Voegtle wrote:
dmesg | grep -E '(micro|min_rev)' [ 0.000000] amd_check_tsa_microcode: ucode_rev: 0xa001000, current revision: 0xa20102e
Damn ext model.
Try the below and send dmesg again pls. I think this should work.
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 1180689a2390..6717abe569c8 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -547,6 +547,7 @@ static bool amd_check_tsa_microcode(void)
p.ext_fam = c->x86 - 0xf; p.model = c->x86_model;
p.ext_model = c->x86_model >> 4; p.stepping = c->x86_stepping;
if (cpu_has(c, X86_FEATURE_ZEN3) ||
@@ -569,12 +570,15 @@ static bool amd_check_tsa_microcode(void) case 0xa70c0: min_rev = 0x0a70c008; break; case 0xaa002: min_rev = 0x0aa00216; break; default:
pr_debug("%s: ucode_rev: 0x%x, current revision: 0x%x\n",
pr_info("%s: ucode_rev: 0x%x, current revision: 0x%x\n", __func__, p.ucode_rev, c->microcode); return false;
} }
pr_info("c->microcode: 0x%x, min_rev: 0x%x, ucode_rev: 0x%x\n",
c->microcode, min_rev, p.ucode_rev);
if (!min_rev) return false;
This works.
cat /sys/devices/system/cpu/vulnerabilities/tsa Mitigation: Clear CPU buffers
dmesg | grep -E '(micro|min_rev)' [ 0.000000] c->microcode: 0xa20102e, min_rev: 0xa20102e, ucode_rev: 0xa201000 [ 1.086174] microcode: Current revision: 0x0a20102e [ 1.086178] microcode: Updated early from: 0x0a201016 [ 1.086269] microcode: Microcode Update Driver: v2.2.
thanks,
Thomas