Message ID | 1474606751-17100-1-git-send-email-herongguang.he@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2016/9/23 12:59, herongguang wrote: > From: He Rongguang <herongguang.he@huawei.com> > > handle KVM_VCPUEVENT_VALID_SMM properly, or kvm-kmod/kernel will crash > in migration destination in gfn_to_rmap() since kvm_memslots_for_spte_role > is false, whilst (vcpu->arch.hflags & HF_SMM_MASK) is true > > Signed-off-by: herongguang <herongguang.he@huawei.com> > --- > arch/x86/kvm/x86.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 699f872..7ebcb59 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -3028,6 +3028,7 @@ static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu, > else > clear_bit(KVM_APIC_INIT, &vcpu->arch.apic->pending_events); > } > + kvm_mmu_reset_context(vcpu); > } > > kvm_make_request(KVM_REQ_EVENT, vcpu); > Hi, do you think this is OK for linux 4.9?
2016-10-08 11:31+0800, Herongguang (Stephen): > On 2016/9/23 12:59, herongguang wrote: >> From: He Rongguang <herongguang.he@huawei.com> >> >> handle KVM_VCPUEVENT_VALID_SMM properly, or kvm-kmod/kernel will crash >> in migration destination in gfn_to_rmap() since kvm_memslots_for_spte_role >> is false, whilst (vcpu->arch.hflags & HF_SMM_MASK) is true >> >> Signed-off-by: herongguang <herongguang.he@huawei.com> >> --- >> arch/x86/kvm/x86.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c >> index 699f872..7ebcb59 100644 >> --- a/arch/x86/kvm/x86.c >> +++ b/arch/x86/kvm/x86.c >> @@ -3028,6 +3028,7 @@ static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu, >> else >> clear_bit(KVM_APIC_INIT, &vcpu->arch.apic->pending_events); >> } >> + kvm_mmu_reset_context(vcpu); >> } >> >> kvm_make_request(KVM_REQ_EVENT, vcpu); >> > > Hi, do you think this is OK for linux 4.9? Thanks for the notification. I think it would be better to use kvm_smm_changed(). Calling kvm_mmu_reset_context() only when SMM mode changed also seems beneficial, which is already done in kvm_set_hflags(). It is a fix and can go into later 4.9 release candidates, in case we miss the first one.
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 699f872..7ebcb59 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -3028,6 +3028,7 @@ static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu, else clear_bit(KVM_APIC_INIT, &vcpu->arch.apic->pending_events); } + kvm_mmu_reset_context(vcpu); } kvm_make_request(KVM_REQ_EVENT, vcpu);