KVM: only abort guest entry if timer count goes from 0->1
authorMarcelo Tosatti <mtosatti@redhat.com>
Wed, 11 Jun 2008 22:52:53 +0000 (19:52 -0300)
committerAvi Kivity <avi@qumranet.com>
Sun, 20 Jul 2008 09:42:32 +0000 (12:42 +0300)
commit622395a9e63bf87a16faecf555ed02375cbae5b7
treec4a8082660a4e4bf8f687a33921d292ae35f6394
parent7f39f8ac177db258200053074aa7a3d98656b1cf
KVM: only abort guest entry if timer count goes from 0->1

Only abort guest entry if the timer count went from 0->1, since for 1->2
or larger the bit will either be set already or a timer irq will have
been injected.

Using atomic_inc_and_test() for it also introduces an SMP barrier
to the LAPIC version (thought it was unecessary because of timer
migration, but guest can be scheduled to a different pCPU between exit
and kvm_vcpu_block(), so there is the possibility for a race).

Noticed by Avi.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
arch/x86/kvm/i8254.c
arch/x86/kvm/lapic.c