]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: Fix racy event propagation in timer
authorJan Kiszka <jan.kiszka@siemens.com>
Tue, 9 Jun 2009 13:37:01 +0000 (15:37 +0200)
committerAvi Kivity <avi@redhat.com>
Thu, 10 Sep 2009 05:32:57 +0000 (08:32 +0300)
commit3f1e467f1eeb5916e88a1e58b3983fb9a560c718
treebecb4695f6028d9636c0cbdc2bd4dff42d4066bf
parentaa76b5daf102111da72dd81db2e30346720dde0b
KVM: Fix racy event propagation in timer

Minor issue that likely had no practical relevance: the kvm timer
function so far incremented the pending counter and then may reset it
again to 1 in case reinjection was disabled. This opened a small racy
window with the corresponding VCPU loop that may have happened to run
on another (real) CPU and already consumed the value.

Fix it by skipping the incrementation in case pending is already > 0.
This opens a different race windows, but may only rarely cause lost
events in case we do not care about them anyway (!reinject).

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/timer.c