• Jan Kiszka's avatar
    KVM: Fix racy event propagation in timer · f7104db2
    Jan Kiszka authored
    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: default avatarJan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    f7104db2
timer.c 1.2 KB