KVM: MMU: update 'root_hpa' out of loop in PAE shadow path
authorXiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Mon, 27 Sep 2010 10:02:12 +0000 (18:02 +0800)
committerAvi Kivity <avi@redhat.com>
Sun, 24 Oct 2010 08:53:09 +0000 (10:53 +0200)
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>
arch/x86/kvm/mmu.c

index c94c43289f53f41b64bc7f273617307e58d3c4c5..3630046990128228b2841dea527f4c2691d270f5 100644 (file)
@@ -2393,8 +2393,8 @@ static int mmu_alloc_direct_roots(struct kvm_vcpu *vcpu)
                        ++sp->root_count;
                        spin_unlock(&vcpu->kvm->mmu_lock);
                        vcpu->arch.mmu.pae_root[i] = root | PT_PRESENT_MASK;
-                       vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root);
                }
+               vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root);
        } else
                BUG();
 
@@ -2466,8 +2466,8 @@ static int mmu_alloc_shadow_roots(struct kvm_vcpu *vcpu)
                spin_unlock(&vcpu->kvm->mmu_lock);
 
                vcpu->arch.mmu.pae_root[i] = root | pm_mask;
-               vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root);
        }
+       vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root);
 
        /*
         * If we shadow a 32 bit page table with a long mode page