diff options
author | Paul Knowles <paul@transitive.com> | 2008-02-06 06:02:35 -0500 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-03-03 04:22:14 -0500 |
commit | d730616384211436cfc84e6c2c1aa45351706a96 (patch) | |
tree | 1689885a6d9cc712f1728b45f7c72d73f0727e6e /arch | |
parent | 6b390b6392309b98fd116b57c2926c44975cde26 (diff) |
KVM: Fix kvm_arch_vcpu_ioctl_set_sregs so that set_cr0 works properly
Whilst working on getting a VM to initialize in to IA32e mode I found
this issue. set_cr0 relies on comparing the old cr0 to the new one to
work correctly. Move the assignment below so the compare can work.
Signed-off-by: Paul Knowles <paul@transitive.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kvm/x86.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index cf5308148689..ec60409299a3 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -2861,8 +2861,8 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu, | |||
2861 | kvm_x86_ops->decache_cr4_guest_bits(vcpu); | 2861 | kvm_x86_ops->decache_cr4_guest_bits(vcpu); |
2862 | 2862 | ||
2863 | mmu_reset_needed |= vcpu->arch.cr0 != sregs->cr0; | 2863 | mmu_reset_needed |= vcpu->arch.cr0 != sregs->cr0; |
2864 | vcpu->arch.cr0 = sregs->cr0; | ||
2865 | kvm_x86_ops->set_cr0(vcpu, sregs->cr0); | 2864 | kvm_x86_ops->set_cr0(vcpu, sregs->cr0); |
2865 | vcpu->arch.cr0 = sregs->cr0; | ||
2866 | 2866 | ||
2867 | mmu_reset_needed |= vcpu->arch.cr4 != sregs->cr4; | 2867 | mmu_reset_needed |= vcpu->arch.cr4 != sregs->cr4; |
2868 | kvm_x86_ops->set_cr4(vcpu, sregs->cr4); | 2868 | kvm_x86_ops->set_cr4(vcpu, sregs->cr4); |