• Christian Borntraeger's avatar
    KVM: s390: fix wait_queue handling · d3bc2f91
    Christian Borntraeger authored
    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: default avatarJulia Lawall <julia@diku.dk>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    d3bc2f91
interrupt.c 15.8 KB