KVM: Drop useless atomic test from timer function
The current code tries to optimize the setting of KVM_REQ_PENDING_TIMER but used atomic_inc_and_test - which always returns true unless pending had the invalid value of -1 on entry. This patch drops the test part preserving the original semantic but expressing it less confusingly. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
f7104db26a
commit
681405bfc7
@ -15,9 +15,9 @@ static int __kvm_timer_fn(struct kvm_vcpu *vcpu, struct kvm_timer *ktimer)
|
|||||||
* case anyway.
|
* case anyway.
|
||||||
*/
|
*/
|
||||||
if (ktimer->reinject || !atomic_read(&ktimer->pending)) {
|
if (ktimer->reinject || !atomic_read(&ktimer->pending)) {
|
||||||
|
atomic_inc(&ktimer->pending);
|
||||||
/* FIXME: this code should not know anything about vcpus */
|
/* FIXME: this code should not know anything about vcpus */
|
||||||
if (!atomic_inc_and_test(&ktimer->pending))
|
set_bit(KVM_REQ_PENDING_TIMER, &vcpu->requests);
|
||||||
set_bit(KVM_REQ_PENDING_TIMER, &vcpu->requests);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (waitqueue_active(q))
|
if (waitqueue_active(q))
|
||||||
|
Loading…
Reference in New Issue
Block a user