diff options
-rw-r--r-- | arch/x86/kvm/svm.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 16d6e5ca4c03..8f665851724f 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c | |||
@@ -2774,6 +2774,12 @@ static int skinit_interception(struct vcpu_svm *svm) | |||
2774 | return 1; | 2774 | return 1; |
2775 | } | 2775 | } |
2776 | 2776 | ||
2777 | static int wbinvd_interception(struct vcpu_svm *svm) | ||
2778 | { | ||
2779 | kvm_emulate_wbinvd(&svm->vcpu); | ||
2780 | return 1; | ||
2781 | } | ||
2782 | |||
2777 | static int xsetbv_interception(struct vcpu_svm *svm) | 2783 | static int xsetbv_interception(struct vcpu_svm *svm) |
2778 | { | 2784 | { |
2779 | u64 new_bv = kvm_read_edx_eax(&svm->vcpu); | 2785 | u64 new_bv = kvm_read_edx_eax(&svm->vcpu); |
@@ -3373,7 +3379,7 @@ static int (*const svm_exit_handlers[])(struct vcpu_svm *svm) = { | |||
3373 | [SVM_EXIT_STGI] = stgi_interception, | 3379 | [SVM_EXIT_STGI] = stgi_interception, |
3374 | [SVM_EXIT_CLGI] = clgi_interception, | 3380 | [SVM_EXIT_CLGI] = clgi_interception, |
3375 | [SVM_EXIT_SKINIT] = skinit_interception, | 3381 | [SVM_EXIT_SKINIT] = skinit_interception, |
3376 | [SVM_EXIT_WBINVD] = emulate_on_interception, | 3382 | [SVM_EXIT_WBINVD] = wbinvd_interception, |
3377 | [SVM_EXIT_MONITOR] = monitor_interception, | 3383 | [SVM_EXIT_MONITOR] = monitor_interception, |
3378 | [SVM_EXIT_MWAIT] = mwait_interception, | 3384 | [SVM_EXIT_MWAIT] = mwait_interception, |
3379 | [SVM_EXIT_XSETBV] = xsetbv_interception, | 3385 | [SVM_EXIT_XSETBV] = xsetbv_interception, |