On 26/01/21 09:18, Wei Huang wrote:
@@ -288,6 +290,9 @@ int svm_set_efer(struct kvm_vcpu *vcpu, u64 efer) if (!(efer & EFER_SVME)) { svm_leave_nested(svm); svm_set_gif(svm, true); + /* #GP intercept is still needed in vmware_backdoor */ + if (!enable_vmware_backdoor) + clr_exception_intercept(svm, GP_VECTOR);/** Free the nested guest state, unless we are in SMM. @@ -309,6 +314,10 @@ int svm_set_efer(struct kvm_vcpu *vcpu, u64 efer)svm->vmcb->save.efer = efer | EFER_SVME;vmcb_mark_dirty(svm->vmcb, VMCB_CR); + /* Enable #GP interception for SVM instructions */ + if (svm_gp_erratum_intercept) + set_exception_intercept(svm, GP_VECTOR); + return 0; }
This should be in the "if (!(efer & EFER_SVME)) else" branch. I'll fix it up myself.
Paolo

