diff --git a/[refs] b/[refs] index e8484dbdd3b9..83f2ba15c2d1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2d2a7b9cff7f6324e69daa3ab76799641a94a0e8 +refs/heads/master: 2065b3727ecdb64450597d70f7e13af00b85dbd8 diff --git a/trunk/drivers/kvm/mmu.c b/trunk/drivers/kvm/mmu.c index 87d8e70fe502..8add4d5c6840 100644 --- a/trunk/drivers/kvm/mmu.c +++ b/trunk/drivers/kvm/mmu.c @@ -907,8 +907,10 @@ static int nonpaging_map(struct kvm_vcpu *vcpu, gva_t v, hpa_t p) pte = table[index]; was_rmapped = is_rmap_pte(pte); - if (is_shadow_present_pte(pte) && is_writeble_pte(pte)) + if (is_shadow_present_pte(pte) && is_writeble_pte(pte)) { + kvm_release_page(pfn_to_page(p >> PAGE_SHIFT)); return 0; + } mark_page_dirty(vcpu->kvm, v >> PAGE_SHIFT); page_header_update_slot(vcpu->kvm, table, v); table[index] = p | PT_PRESENT_MASK | PT_WRITABLE_MASK |