Message ID | 20230830143837.220465-4-cascardo@canonical.com |
---|---|
State | New |
Headers | show |
Series | CVE-2023-20588 | expand |
diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index 3f8e22615812..721109c0cf99 100644 --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -218,6 +218,7 @@ __visible inline void prepare_exit_to_usermode(struct pt_regs *regs) user_enter_irqoff(); mds_user_clear_cpu_buffers(); + amd_clear_divider(); } #define SYSCALL_EXIT_WORK_FLAGS \ diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 5413f25cf9d7..d068bdfb3e56 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1259,3 +1259,4 @@ void noinstr amd_clear_divider(void) asm volatile(ALTERNATIVE("", "div %2\n\t", X86_BUG_DIV0) :: "a" (0), "d" (0), "r" (1)); } +EXPORT_SYMBOL_GPL(amd_clear_divider); diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 7e66a2b1d4dd..c2885d4aa43d 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -5718,6 +5718,8 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) local_irq_enable(); + amd_clear_divider(); + asm volatile ( "push %%" _ASM_BP "; \n\t" "mov %c[rbx](%[svm]), %%" _ASM_BX " \n\t"