Commit a1c61c3a authored by Tom Lendacky's avatar Tom Lendacky Committed by Marcelo Henrique Cerri

x86/svm: Add code to clear registers on VM exit

CVE-2017-5753
CVE-2017-5715

Clear registers on VM exit to prevent speculative use of them.
Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarAndy Whitcroft <apw@canonical.com>
(cherry picked from commit fa3bf5051d2cb8df4c2ff38750c895ea497cc1d4)
Signed-off-by: default avatarAndy Whitcroft <apw@canonical.com>
parent b554560f
...@@ -3896,6 +3896,22 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) ...@@ -3896,6 +3896,22 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
"mov %%r13, %c[r13](%[svm]) \n\t" "mov %%r13, %c[r13](%[svm]) \n\t"
"mov %%r14, %c[r14](%[svm]) \n\t" "mov %%r14, %c[r14](%[svm]) \n\t"
"mov %%r15, %c[r15](%[svm]) \n\t" "mov %%r15, %c[r15](%[svm]) \n\t"
#endif
/* Clear host registers (marked as clobbered so it's safe) */
"xor %%" _ASM_BX ", %%" _ASM_BX " \n\t"
"xor %%" _ASM_CX ", %%" _ASM_CX " \n\t"
"xor %%" _ASM_DX ", %%" _ASM_DX " \n\t"
"xor %%" _ASM_SI ", %%" _ASM_SI " \n\t"
"xor %%" _ASM_DI ", %%" _ASM_DI " \n\t"
#ifdef CONFIG_X86_64
"xor %%r8, %%r8 \n\t"
"xor %%r9, %%r9 \n\t"
"xor %%r10, %%r10 \n\t"
"xor %%r11, %%r11 \n\t"
"xor %%r12, %%r12 \n\t"
"xor %%r13, %%r13 \n\t"
"xor %%r14, %%r14 \n\t"
"xor %%r15, %%r15 \n\t"
#endif #endif
"pop %%" _ASM_BP "pop %%" _ASM_BP
: :
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment