]> err.no Git - linux-2.6/blobdiff - arch/x86/kvm/lapic.c
KVM: x86 emulator: simplify r/m decoding
[linux-2.6] / arch / x86 / kvm / lapic.c
index 180ba7316da5e57831903ef33893b016b4c63ebd..73f43de69f676b9a784de04b4a7b5dbd43ecc3b1 100644 (file)
@@ -945,8 +945,8 @@ static int __apic_timer_fn(struct kvm_lapic *apic)
        int result = 0;
        wait_queue_head_t *q = &apic->vcpu->wq;
 
-       atomic_inc(&apic->timer.pending);
-       set_bit(KVM_REQ_PENDING_TIMER, &apic->vcpu->requests);
+       if(!atomic_inc_and_test(&apic->timer.pending))
+               set_bit(KVM_REQ_PENDING_TIMER, &apic->vcpu->requests);
        if (waitqueue_active(q)) {
                apic->vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;
                wake_up_interruptible(q);