Messages in this thread | | | Subject | Re: [PATCH 03/14] KVM: x86: nSVM: test eax for 4K alignment for GP errata workaround | From | Paolo Bonzini <> | Date | Thu, 23 Sep 2021 16:05:46 +0200 |
| |
On 14/09/21 17:48, Maxim Levitsky wrote: > GP SVM errata workaround made the #GP handler always emulate > the SVM instructions. > > However these instructions #GP in case the operand is not 4K aligned, > but the workaround code didn't check this and we ended up > emulating these instructions anyway. > > This is only an emulation accuracy check bug as there is no harm for > KVM to read/write unaligned vmcb images. > > Fixes: 82a11e9c6fa2 ("KVM: SVM: Add emulation support for #GP triggered by SVM instructions") > > Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> > --- > arch/x86/kvm/svm/svm.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c > index b2e710a3fff6..6645542df9bd 100644 > --- a/arch/x86/kvm/svm/svm.c > +++ b/arch/x86/kvm/svm/svm.c > @@ -2224,6 +2224,10 @@ static int gp_interception(struct kvm_vcpu *vcpu) > if (error_code) > goto reinject; > > + /* All SVM instructions expect page aligned RAX */ > + if (svm->vmcb->save.rax & ~PAGE_MASK) > + goto reinject; > + > /* Decode the instruction for usage later */ > if (x86_decode_emulated_instruction(vcpu, 0, NULL, 0) != EMULATION_OK) > goto reinject; >
Queued, thanks.
Paolo
| |