Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e02fb96 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin Committed by Avi Kivity
Browse files

KVM: fix crash on irqfd deassign



irqfd in kvm used flush_work incorrectly: it assumed that work scheduled
previously can't run after flush_work, but since kvm uses a non-reentrant
workqueue (by means of schedule_work) we need flush_work_sync to get that
guarantee.

Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Reported-by: default avatarJean-Philippe Menil <jean-philippe.menil@univ-nantes.fr>
Tested-by: default avatarJean-Philippe Menil <jean-philippe.menil@univ-nantes.fr>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 6221f222
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -90,7 +90,7 @@ irqfd_shutdown(struct work_struct *work)
	 * We know no new events will be scheduled at this point, so block
	 * until all previously outstanding events have completed
	 */
	flush_work(&irqfd->inject);
	flush_work_sync(&irqfd->inject);

	/*
	 * It is now safe to release the object's resources