From 197d13be7dd35cd9904c853e492f6505a361382f Mon Sep 17 00:00:00 2001 From: Hollis Blanchard Date: Wed, 21 May 2008 18:22:54 -0500 Subject: [PATCH] --- yaml --- r: 97979 b: refs/heads/master c: 905fa4b9d6e2c9fd1c9ad84e3abe83021f498f53 h: refs/heads/master i: 97977: 4317b718d119ff1dc000cf7f3f909d644a69cdbf 97975: 20d5e2d333a62838b3b50e729a7e611e0bdcaa35 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/kvm/44x_tlb.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f2bf2a5a431e..d505612c76ab 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 52435b7c7a29f7dd7947c8c204494d7f52f14813 +refs/heads/master: 905fa4b9d6e2c9fd1c9ad84e3abe83021f498f53 diff --git a/trunk/arch/powerpc/kvm/44x_tlb.c b/trunk/arch/powerpc/kvm/44x_tlb.c index aa649c7db99b..1c48d6164bd5 100644 --- a/trunk/arch/powerpc/kvm/44x_tlb.c +++ b/trunk/arch/powerpc/kvm/44x_tlb.c @@ -142,18 +142,19 @@ void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gfn_t gfn, u64 asid, stlbe = &vcpu->arch.shadow_tlb[victim]; /* Get reference to new page. */ - down_write(¤t->mm->mmap_sem); + down_read(¤t->mm->mmap_sem); new_page = gfn_to_page(vcpu->kvm, gfn); if (is_error_page(new_page)) { printk(KERN_ERR "Couldn't get guest page!\n"); kvm_release_page_clean(new_page); + up_read(¤t->mm->mmap_sem); return; } hpaddr = page_to_phys(new_page); /* Drop reference to old page. */ kvmppc_44x_shadow_release(vcpu, victim); - up_write(¤t->mm->mmap_sem); + up_read(¤t->mm->mmap_sem); vcpu->arch.shadow_pages[victim] = new_page;