소스 검색

KVM: MMU: fix counting of rmap entries in rmap_add()

It seems that rmap entries are under counted.

Signed-off-by: Hillf Danton <dhillf@gmail.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Hillf Danton 15 년 전
부모
커밋
cb16a7b387
1개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      arch/x86/kvm/mmu.c

+ 2 - 1
arch/x86/kvm/mmu.c

@@ -632,6 +632,7 @@ static int rmap_add(struct kvm_vcpu *vcpu, u64 *spte, gfn_t gfn)
 		desc->sptes[0] = (u64 *)*rmapp;
 		desc->sptes[0] = (u64 *)*rmapp;
 		desc->sptes[1] = spte;
 		desc->sptes[1] = spte;
 		*rmapp = (unsigned long)desc | 1;
 		*rmapp = (unsigned long)desc | 1;
+		++count;
 	} else {
 	} else {
 		rmap_printk("rmap_add: %p %llx many->many\n", spte, *spte);
 		rmap_printk("rmap_add: %p %llx many->many\n", spte, *spte);
 		desc = (struct kvm_rmap_desc *)(*rmapp & ~1ul);
 		desc = (struct kvm_rmap_desc *)(*rmapp & ~1ul);
@@ -644,7 +645,7 @@ static int rmap_add(struct kvm_vcpu *vcpu, u64 *spte, gfn_t gfn)
 			desc = desc->more;
 			desc = desc->more;
 		}
 		}
 		for (i = 0; desc->sptes[i]; ++i)
 		for (i = 0; desc->sptes[i]; ++i)
-			;
+			++count;
 		desc->sptes[i] = spte;
 		desc->sptes[i] = spte;
 	}
 	}
 	return count;
 	return count;