mirror of
https://git.proxmox.com/git/pve-kernel
synced 2025-04-28 11:21:12 +00:00
cherry-pick fix mitigating host reboot issue affecting certain AMD Zen4 CPU models
Reported in the community forum: Issue: https://forum.proxmox.com/threads/139500/ Fix: https://forum.proxmox.com/threads/139500/post-717968 Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
This commit is contained in:
parent
035534f88e
commit
a681faec23
@ -0,0 +1,44 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
||||
Date: Tue, 5 Nov 2024 10:02:34 -0600
|
||||
Subject: [PATCH] x86/CPU/AMD: Clear virtualized VMLOAD/VMSAVE on Zen4 client
|
||||
|
||||
A number of Zen4 client SoCs advertise the ability to use virtualized
|
||||
VMLOAD/VMSAVE, but using these instructions is reported to be a cause
|
||||
of a random host reboot.
|
||||
|
||||
These instructions aren't intended to be advertised on Zen4 client
|
||||
so clear the capability.
|
||||
|
||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
||||
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
|
||||
Cc: stable@vger.kernel.org
|
||||
Link: https://bugzilla.kernel.org/show_bug.cgi?id=219009
|
||||
(cherry picked from commit a5ca1dc46a6b610dd4627d8b633d6c84f9724ef0)
|
||||
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
|
||||
---
|
||||
arch/x86/kernel/cpu/amd.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
|
||||
index 1e0fe5f8ab84..ee87f997d31f 100644
|
||||
--- a/arch/x86/kernel/cpu/amd.c
|
||||
+++ b/arch/x86/kernel/cpu/amd.c
|
||||
@@ -924,6 +924,17 @@ static void init_amd_zen4(struct cpuinfo_x86 *c)
|
||||
{
|
||||
if (!cpu_has(c, X86_FEATURE_HYPERVISOR))
|
||||
msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT);
|
||||
+
|
||||
+ /*
|
||||
+ * These Zen4 SoCs advertise support for virtualized VMLOAD/VMSAVE
|
||||
+ * in some BIOS versions but they can lead to random host reboots.
|
||||
+ */
|
||||
+ switch (c->x86_model) {
|
||||
+ case 0x18 ... 0x1f:
|
||||
+ case 0x60 ... 0x7f:
|
||||
+ clear_cpu_cap(c, X86_FEATURE_V_VMSAVE_VMLOAD);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
|
||||
static void init_amd_zen5(struct cpuinfo_x86 *c)
|
Loading…
Reference in New Issue
Block a user