• Paolo Bonzini's avatar
    KVM: x86: fix deadlock for KVM_XEN_EVTCHN_RESET · a79b53aa
    Paolo Bonzini authored
    While KVM_XEN_EVTCHN_RESET is usually called with no vCPUs running,
    if that happened it could cause a deadlock.  This is due to
    kvm_xen_eventfd_reset() doing a synchronize_srcu() inside
    a kvm->lock critical section.
    
    To avoid this, first collect all the evtchnfd objects in an
    array and free all of them once the kvm->lock critical section
    is over and th SRCU grace period has expired.
    Reported-by: default avatarMichal Luczaj <mhal@rbox.co>
    Cc: David Woodhouse <dwmw@amazon.co.uk>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    a79b53aa
xen_shinfo_test.c 30.1 KB