SVM: fix cpu onlining
cover SVM: fix cpu onlining
PATCH 1/2 KVM: SVM: reset mmu context in init_vmcb
Since commit aad827034e419fa no mmu reinitialization is performed via init_vmcb.
Zero vcpu->arch.cr0 and pass the reset value as a parameter to kvm_set_cr0.
Signed-off-by Marcelo Tosatti <[email protected]>
arch/x86/kvm/svm.c +2 -2
@@ -827,8 +827,8 @@ static void init_vmcb(struct vcpu_svm *s* This is the guest-visible cr0 value. * svm_set_cr0() sets PG and WP and clears NW and CD on save->cr0. */ - svm->vcpu.arch.cr0 =X86_CR0_NW |X86_CR0_CD |X86_CR0_ET ; - (void )kvm_set_cr0 (&svm->vcpu, svm->vcpu.arch.cr0); + svm->vcpu.arch.cr0 =0 ; + (void )kvm_set_cr0 (&svm->vcpu,X86_CR0_NW |X86_CR0_CD |X86_CR0_ET ); save->cr4 =X86_CR4_PAE ;/* rdx = ?? */
PATCH 2/2 KVM: SVM: init_vmcb should reset vcpu->efer
In reply to Marcelo TosattiOtherwise EFER_LMA bit is retained across a SIPI reset.
Fixes guest cpu onlining.
Signed-off-by Marcelo Tosatti <[email protected]>
arch/x86/kvm/svm.c +1 -1
@@ -816,7 +816,7 @@ static void init_vmcb(struct vcpu_svm *sinit_sys_seg (&save->ldtr,SEG_TYPE_LDT );init_sys_seg (&save->tr,SEG_TYPE_BUSY_TSS16 ); - save->efer =EFER_SVME ; +svm_set_efer (&svm->vcpu,0 ); save->dr6 =0xffff0ff0 ; save->dr7 =0x400 ; save->rflags =2 ;
Avi Kivity
AppliedOn 09/01/2010 01:13 AM, Marcelo Tosatti wrote:
applied, thanks.
Signature · 2 lines
I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.