kvm: fix crash on irqfd deassign
PATCH 1/1 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.
---
Note: this is needed for kernel 2.6.39 and earlier.
virt/kvm/eventfd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
virt/kvm/eventfd.c +1 -1
@@ -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
Signature · 1 line
1.7.3.2.91.g446ac
Quoted 6 lines · Michael S. Tsirkin
irqfd in kvm used
flush_workincorrectly:
it assumed that work scheduled previously can't run afterflush_work, but since kvm uses a non-reentrant workqueue (by means ofschedule_work)
we needflush_work_syncto get that guarantee.
Quoted 6 lines
Signed-off-by Michael S. Tsirkin <[email protected]>Reported-by Jean-Philippe Menil <[email protected]>Tested-by Jean-Philippe Menil <[email protected]>---
Note: this is needed for kernel 2.6.39 and earlier.
This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read Documentation/stable_kernel_rules.txt for how to do this properly.
thanks,
greg k-h
Quoted 14 lines · Greg KH
Quoted 6 lines · Michael S. Tsirkin
irqfd in kvm used
flush_workincorrectly:
it assumed that work scheduled previously can't run afterflush_work, but since kvm uses a non-reentrant workqueue (by means ofschedule_work)
we needflush_work_syncto get that guarantee.Quoted 6 lines
Signed-off-by Michael S. Tsirkin <[email protected]>Reported-by Jean-Philippe Menil <[email protected]>Tested-by Jean-Philippe Menil <[email protected]>---
Note: this is needed for kernel 2.6.39 and earlier.
Quoted 7 lines
This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read
Documentation/stable_kernel_rules.txtfor how to do this properly.thanks,
greg k-h
What I missed is Cc: [email protected] in the text?
OK, thanks for the correction. Actually I forgot, Avi and Marcelo want to handle stable patches for kvm themselves.
Avi, Marcelo, right?
So Greg, you can forget about this one for now.
Thanks,
Signature · 1 line
MST
Quoted 6 lines · Michael S. Tsirkin
irqfd in kvm used
flush_workincorrectly:
it assumed that work scheduled previously can't run afterflush_work, but since kvm uses a non-reentrant workqueue (by means ofschedule_work)
we needflush_work_syncto get that guarantee.
Quoted 7 lines
Signed-off-by Michael S. Tsirkin<[email protected]>Reported-by Jean-Philippe Menil<[email protected]>Tested-by Jean-Philippe Menil<[email protected]>---
Note: this is needed for kernel 2.6.39 and earlier.
What about kvm.git master?
Signature · 1 line
error compiling committee.c: too many arguments to function
Quoted 12 lines · Avi Kivity
Quoted 11 lines · Michael S. Tsirkin
irqfd in kvm used
flush_workincorrectly:
it assumed that work scheduled previously can't run afterflush_work, but since kvm uses a non-reentrant workqueue (by means ofschedule_work)
we needflush_work_syncto get that guarantee.Signed-off-by Michael S. Tsirkin<[email protected]>Reported-by Jean-Philippe Menil<[email protected]>Tested-by Jean-Philippe Menil<[email protected]>---
Quoted 4 lines
Quoted 2 lines
Note: this is needed for kernel 2.6.39 and earlier.
What about kvm.git master?
Sorry about the confusion.
Clarification: this is needed on kvm.git master,
as well as 2.6.39 and earlier.
Quoted 2 lines
Signature · 1 line
error compiling committee.c: too many arguments to function
Avi Kivity
AppliedQuoted 6 lines · Michael S. Tsirkin
irqfd in kvm used
flush_workincorrectly:
it assumed that work scheduled previously can't run afterflush_work, but since kvm uses a non-reentrant workqueue (by means ofschedule_work)
we needflush_work_syncto get that guarantee.
Applied, and queued for 2.6.39. Thanks.
Signature · 1 line
error compiling committee.c: too many arguments to function