aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2011-12-12 07:24:48 -0500
committerAvi Kivity <avi@redhat.com>2012-03-05 07:52:34 -0500
commit4e72dbe13528394a413889d73e5025dbdf6cab70 (patch)
treee7aec9cbd0f0a141af136e76df240ee5673b287f /arch/powerpc/kvm
parentbefdc0a65afd17181392eff3d43c63407f266a9f (diff)
KVM: PPC: Make wakeups work again for Book3S HV guests
When commit f43fdc15fa ("KVM: PPC: booke: Improve timer register emulation") factored out some code in arch/powerpc/kvm/powerpc.c into a new helper function, kvm_vcpu_kick(), an error crept in which causes Book3s HV guest vcpus to stall. This fixes it. On POWER7 machines, guest vcpus are grouped together into virtual CPU cores that share a single waitqueue, so it's important to use vcpu->arch.wqp rather than &vcpu->wq. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm')
-rw-r--r--arch/powerpc/kvm/powerpc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index e1ef4d6d972a..4f85ac32258a 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -562,7 +562,7 @@ void kvm_vcpu_kick(struct kvm_vcpu *vcpu)
562 int cpu = vcpu->cpu; 562 int cpu = vcpu->cpu;
563 563
564 me = get_cpu(); 564 me = get_cpu();
565 if (waitqueue_active(&vcpu->wq)) { 565 if (waitqueue_active(vcpu->arch.wqp)) {
566 wake_up_interruptible(vcpu->arch.wqp); 566 wake_up_interruptible(vcpu->arch.wqp);
567 vcpu->stat.halt_wakeup++; 567 vcpu->stat.halt_wakeup++;
568 } else if (cpu != me && cpu != -1) { 568 } else if (cpu != me && cpu != -1) {