KVM: s390: fix wait_queue handling
authorChristian Borntraeger <borntraeger@de.ibm.com>
Thu, 16 Jul 2009 15:17:37 +0000 (17:17 +0200)
committerAvi Kivity <avi@redhat.com>
Wed, 5 Aug 2009 10:59:46 +0000 (13:59 +0300)
commitd3bc2f91b4761a8d9f96bea167fef2f8c00dea54
treedced4891f47175b6a394201410d3685805b4b730
parent263799a3616242201e20fd2025fe84047b1379b1
KVM: s390: fix wait_queue handling

There are two waitqueues in kvm for wait handling:
vcpu->wq for virt/kvm/kvm_main.c and
vpcu->arch.local_int.wq for the s390 specific wait code.

the wait handling in kvm_s390_handle_wait was broken by using different
wait_queues for add_wait queue and remove_wait_queue.

There are two options to fix the problem:
o  move all the s390 specific code to vcpu->wq and remove
   vcpu->arch.local_int.wq
o  move all the s390 specific code to vcpu->arch.local_int.wq

This patch chooses the 2nd variant for two reasons:
o  s390 does not use kvm_vcpu_block but implements its own enabled wait
   handling.
   Having a separate wait_queue make it clear, that our wait mechanism is
   different
o  the patch is much smaller

Report-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/s390/kvm/interrupt.c