mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
x86/CPU: Fix FPDSS on Zen1
Zen1's hardware divider can leave, under certain circumstances, partial results from previous operations. Those results can be leaked by another, attacker thread. Fix that with a chicken bit. Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
43cfbdda5a
commit
e55d98e775
@@ -674,6 +674,9 @@
|
||||
#define MSR_AMD64_DC_CFG 0xc0011022
|
||||
#define MSR_AMD64_TW_CFG 0xc0011023
|
||||
|
||||
#define MSR_AMD64_FP_CFG 0xc0011028
|
||||
#define MSR_AMD64_FP_CFG_ZEN1_DENORM_FIX_BIT 9
|
||||
|
||||
#define MSR_AMD64_DE_CFG 0xc0011029
|
||||
#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT 1
|
||||
#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE BIT_ULL(MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT)
|
||||
|
||||
@@ -944,6 +944,9 @@ static void init_amd_zen1(struct cpuinfo_x86 *c)
|
||||
msr_clear_bit(MSR_K7_HWCR, MSR_K7_HWCR_IRPERF_EN_BIT);
|
||||
clear_cpu_cap(c, X86_FEATURE_IRPERF);
|
||||
}
|
||||
|
||||
pr_notice_once("AMD Zen1 FPDSS bug detected, enabling mitigation.\n");
|
||||
msr_set_bit(MSR_AMD64_FP_CFG, MSR_AMD64_FP_CFG_ZEN1_DENORM_FIX_BIT);
|
||||
}
|
||||
|
||||
static const struct x86_cpu_id amd_zenbleed_microcode[] = {
|
||||
|
||||
Reference in New Issue
Block a user