aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXiao Guangrong <xiaoguangrong@cn.fujitsu.com>2010-11-01 17:00:30 +0800
committerAvi Kivity <avi@redhat.com>2011-01-12 11:28:59 +0200
commitc7d28c24042f7969adc29147d6c0a190192a6808 (patch)
tree7c4400eefa230cfd9934608343ccdda2c1fddc6f
parentKVM: cleanup async_pf tracepoints (diff)
downloadlinux-dev-c7d28c24042f7969adc29147d6c0a190192a6808.tar.xz
linux-dev-c7d28c24042f7969adc29147d6c0a190192a6808.zip
KVM: fix searching async gfn in kvm_async_pf_gfn_slot
Don't search later slots if the slot is empty Acked-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
-rw-r--r--arch/x86/kvm/x86.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c10135bc0f2f..ab10a6ca1549 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6209,8 +6209,8 @@ static u32 kvm_async_pf_gfn_slot(struct kvm_vcpu *vcpu, gfn_t gfn)
u32 key = kvm_async_pf_hash_fn(gfn);
for (i = 0; i < roundup_pow_of_two(ASYNC_PF_PER_VCPU) &&
- (vcpu->arch.apf.gfns[key] != gfn ||
- vcpu->arch.apf.gfns[key] == ~0); i++)
+ (vcpu->arch.apf.gfns[key] != gfn &&
+ vcpu->arch.apf.gfns[key] != ~0); i++)
key = kvm_async_pf_next_probe(key);
return key;