diff options
Diffstat (limited to 'arch/x86/kvm/svm.c')
-rw-r--r-- | arch/x86/kvm/svm.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index b98d00bfaf8a..1eb5504ca6f5 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c | |||
@@ -3871,6 +3871,9 @@ static void svm_fpu_deactivate(struct kvm_vcpu *vcpu) | |||
3871 | #define POST_EX(exit) { .exit_code = (exit), \ | 3871 | #define POST_EX(exit) { .exit_code = (exit), \ |
3872 | .stage = X86_ICPT_POST_EXCEPT, \ | 3872 | .stage = X86_ICPT_POST_EXCEPT, \ |
3873 | .valid = true } | 3873 | .valid = true } |
3874 | #define POST_MEM(exit) { .exit_code = (exit), \ | ||
3875 | .stage = X86_ICPT_POST_MEMACCESS, \ | ||
3876 | .valid = true } | ||
3874 | 3877 | ||
3875 | static struct __x86_intercept { | 3878 | static struct __x86_intercept { |
3876 | u32 exit_code; | 3879 | u32 exit_code; |
@@ -3900,9 +3903,13 @@ static struct __x86_intercept { | |||
3900 | [x86_intercept_clgi] = POST_EX(SVM_EXIT_CLGI), | 3903 | [x86_intercept_clgi] = POST_EX(SVM_EXIT_CLGI), |
3901 | [x86_intercept_skinit] = POST_EX(SVM_EXIT_SKINIT), | 3904 | [x86_intercept_skinit] = POST_EX(SVM_EXIT_SKINIT), |
3902 | [x86_intercept_invlpga] = POST_EX(SVM_EXIT_INVLPGA), | 3905 | [x86_intercept_invlpga] = POST_EX(SVM_EXIT_INVLPGA), |
3906 | [x86_intercept_rdtscp] = POST_EX(SVM_EXIT_RDTSCP), | ||
3907 | [x86_intercept_monitor] = POST_MEM(SVM_EXIT_MONITOR), | ||
3908 | [x86_intercept_mwait] = POST_EX(SVM_EXIT_MWAIT), | ||
3903 | }; | 3909 | }; |
3904 | 3910 | ||
3905 | #undef POST_EX | 3911 | #undef POST_EX |
3912 | #undef POST_MEM | ||
3906 | 3913 | ||
3907 | static int svm_check_intercept(struct kvm_vcpu *vcpu, | 3914 | static int svm_check_intercept(struct kvm_vcpu *vcpu, |
3908 | struct x86_instruction_info *info, | 3915 | struct x86_instruction_info *info, |