Gregory Haskins wrote: > Signed-off-by: Gregory Haskins <[EMAIL PROTECTED]> > --- > > drivers/kvm/vmx.c | 71 > +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 58 > insertions(+), 13 deletions(-) > > diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c > index 96837d6..86f1eea 100644 > --- a/drivers/kvm/vmx.c > +++ b/drivers/kvm/vmx.c > @@ -191,6 +191,20 @@ static struct kvm_msr_entry *find_msr_entry(struct > kvm_vcpu *vcpu, u32 msr) return NULL; > } > > +static void vmcs_load(struct vmcs *vmcs) > +{ > + u64 phys_addr = __pa(vmcs); > + u8 error; > + > + asm volatile (ASM_VMX_VMPTRLD_RAX "; setna %0" > + : "=g"(error) : "a"(&phys_addr), "m"(phys_addr) > + : "cc"); > + > + if (error) > + printk(KERN_ERR "kvm: vmptrld %p/%llx fail\n", > + vmcs, phys_addr); > +}
I don't believe this instruction fails under normal conditions, but we should terminate the guest cleanly in such cases, rather than just doing printk(). Jun --- Intel Open Source Technology Center ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel