diff options
| author | David S. Miller <davem@davemloft.net> | 2018-01-09 10:37:00 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2018-01-09 10:37:00 -0500 |
| commit | a0ce093180f2bbb832b3f5583adc640ad67ea568 (patch) | |
| tree | 62c9aca5be3566ea4810e4584a02870de8b953f8 /arch/x86/kvm/svm.c | |
| parent | f4803f1b73f877a571be4c8e531dfcf190acc691 (diff) | |
| parent | ef7f8cec80a0ba7bd00ece46844c8994117dc910 (diff) | |
| download | talos-op-linux-a0ce093180f2bbb832b3f5583adc640ad67ea568.tar.gz talos-op-linux-a0ce093180f2bbb832b3f5583adc640ad67ea568.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'arch/x86/kvm/svm.c')
| -rw-r--r-- | arch/x86/kvm/svm.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index eb714f1cdf7e..bb31c801f1fc 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -4986,6 +4986,25 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) "mov %%r14, %c[r14](%[svm]) \n\t" "mov %%r15, %c[r15](%[svm]) \n\t" #endif + /* + * Clear host registers marked as clobbered to prevent + * speculative use. + */ + "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 "pop %%" _ASM_BP : : [svm]"a"(svm), |

