On Tue, Dec 08, 2009 at 11:36:59AM +0200, Avi Kivity wrote:
> On 12/08/2009 09:57 AM, Sheng Yang wrote:
> >vcpu->arch.cr0 = cr0;
> >>-           vmx_set_cr4(vcpu, vcpu->arch.cr4);
> >>+           vmx_set_cr4(vcpu, kvm_read_cr4(vcpu));
> >>    }
> >Another place accessed cr4 directly, in ept_update_paging_mode_cr4()
> >
> 
> That one is called from vmx_set_cr4(); at that time CR4_READ_SHADOW
> is not up-to-date and vmx_decache_cr4_guest_bits() will actually
> corrupt vcpu->arch.cr4 (except it won't be called, since cr4.pae is
> never guest owned).

Yes, you are right...
> 
> But you are right, I should have placed a comment.  I'll add a patch
> that inlines ept_update_paging_mode_cr4 into its caller so it can
> access the cr4 parameter directly instead of vcpu->arch.cr4.

Just notice another thing, seems the cr4_guest_owned_bits' initial value is
wrong. It should be ~KVM_GUEST_CR4_MASK rather than KVM_GUEST_CR4_MASK in this
patch IIUC.

-- 
regards
Yang, Sheng
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to