diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2022-12-28 11:33:41 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2022-12-28 11:53:57 +0100 |
commit | a79b53aaaab53de017517bf9579b6106397a523c (patch) | |
tree | 9dd186153aa405173b6b792843191932244df4c9 /ipc/sem.c | |
parent | KVM: x86/xen: Documentation updates and clarifications (diff) | |
download | linux-a79b53aaaab53de017517bf9579b6106397a523c.tar.xz linux-a79b53aaaab53de017517bf9579b6106397a523c.zip |
KVM: x86: fix deadlock for KVM_XEN_EVTCHN_RESET
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: Michal Luczaj <mhal@rbox.co>
Cc: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'ipc/sem.c')
0 files changed, 0 insertions, 0 deletions