aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorXiao Guangrong <xiaoguangrong@cn.fujitsu.com>2010-09-27 06:02:12 -0400
committerAvi Kivity <avi@redhat.com>2010-10-24 04:53:09 -0400
commit6292757fb0e758748fdb441861f8c50d397de9f0 (patch)
tree7a33df56d8eb1d1259c40a61578cb7d81cd2defe /arch
parent7129eecac10681f69cb00c0323ee915feceb57eb (diff)
KVM: MMU: update 'root_hpa' out of loop in PAE shadow path
The value of 'vcpu->arch.mmu.pae_root' is not modified, so we can update 'root_hpa' out of the loop. Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kvm/mmu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index c94c43289f53..363004699012 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2393,8 +2393,8 @@ static int mmu_alloc_direct_roots(struct kvm_vcpu *vcpu)
2393 ++sp->root_count; 2393 ++sp->root_count;
2394 spin_unlock(&vcpu->kvm->mmu_lock); 2394 spin_unlock(&vcpu->kvm->mmu_lock);
2395 vcpu->arch.mmu.pae_root[i] = root | PT_PRESENT_MASK; 2395 vcpu->arch.mmu.pae_root[i] = root | PT_PRESENT_MASK;
2396 vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root);
2397 } 2396 }
2397 vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root);
2398 } else 2398 } else
2399 BUG(); 2399 BUG();
2400 2400
@@ -2466,8 +2466,8 @@ static int mmu_alloc_shadow_roots(struct kvm_vcpu *vcpu)
2466 spin_unlock(&vcpu->kvm->mmu_lock); 2466 spin_unlock(&vcpu->kvm->mmu_lock);
2467 2467
2468 vcpu->arch.mmu.pae_root[i] = root | pm_mask; 2468 vcpu->arch.mmu.pae_root[i] = root | pm_mask;
2469 vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root);
2470 } 2469 }
2470 vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root);
2471 2471
2472 /* 2472 /*
2473 * If we shadow a 32 bit page table with a long mode page 2473 * If we shadow a 32 bit page table with a long mode page