Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1336671

[PATCH v2 02/14] KVM: x86: simplify atomics in kvm_pit_ack_irq

From Radim Krčmář <rkrcmar@redhat.com>
Newsgroups linux.kernel
Subject [PATCH v2 02/14] KVM: x86: simplify atomics in kvm_pit_ack_irq
Date 2016-02-17 20:20 +0100
Message-ID <r3fNM-2nq-9@gated-at.bofh.it> (permalink)
References <r3fNM-2nq-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


We already have a helper that does the same thing.

Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
---
 v2: The pending == 1 means there's only us => don't reinject.

 arch/x86/kvm/i8254.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index ab5318727579..7d694ac7f4a4 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -236,19 +236,9 @@ static void kvm_pit_ack_irq(struct kvm_irq_ack_notifier *kian)
 {
 	struct kvm_kpit_state *ps = container_of(kian, struct kvm_kpit_state,
 						 irq_ack_notifier);
-	int value;
 
 	spin_lock(&ps->inject_lock);
-	value = atomic_dec_return(&ps->pending);
-	if (value < 0)
-		/* spurious acks can be generated if, for example, the
-		 * PIC is being reset.  Handle it gracefully here
-		 */
-		atomic_inc(&ps->pending);
-	else if (value > 0 && ps->reinject)
-		/* in this case, we had multiple outstanding pit interrupts
-		 * that we needed to inject.  Reinject
-		 */
+	if (atomic_dec_if_positive(&ps->pending) > 0 && ps->reinject)
 		queue_kthread_work(&ps->pit->worker, &ps->pit->expired);
 	ps->irq_ack = 1;
 	spin_unlock(&ps->inject_lock);
-- 
2.7.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 00/14] KVM: x86: change PIT discard policy and untangle related code Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 02/14] KVM: x86: simplify atomics in kvm_pit_ack_irq Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
    Re: [PATCH v2 02/14] KVM: x86: simplify atomics in kvm_pit_ack_irq Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 19:10 +0100
      Re: [PATCH v2 02/14] KVM: x86: simplify atomics in kvm_pit_ack_irq Paolo Bonzini <pbonzini@redhat.com> - 2016-02-19 17:00 +0100
      Re: [PATCH v2 02/14] KVM: x86: simplify atomics in kvm_pit_ack_irq Radim Krčmář <rkrcmar@redhat.com> - 2016-02-19 17:00 +0100
  [PATCH v2 14/14] KVM: x86: move PIT timer function initialization Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 05/14] KVM: x86: tone down WARN_ON pit.state_lock Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 06/14] KVM: x86: pass struct kvm_pit instead of kvm in PIT Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 09/14] KVM: x86: refactor kvm_create_pit Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 04/14] KVM: x86: use atomic_t instead of pit.inject_lock Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 13/14] KVM: x86: don't assume layout of kvm_kpit_state Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 01/14] KVM: x86: change PIT discard tick policy Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
    Re: [PATCH v2 01/14] KVM: x86: change PIT discard tick policy Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 17:20 +0100
      Re: [PATCH v2 01/14] KVM: x86: change PIT discard tick policy Radim Krčmář <rkrcmar@redhat.com> - 2016-02-18 18:00 +0100
        Re: [PATCH v2 01/14] KVM: x86: change PIT discard tick policy Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 18:40 +0100
          Re: [PATCH v2 01/14] KVM: x86: change PIT discard tick policy Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 19:00 +0100
            Re: [PATCH v2 01/14] KVM: x86: change PIT discard tick policy Radim Krčmář <rkrcmar@redhat.com> - 2016-02-19 15:50 +0100
    Re: [PATCH v2 01/14] KVM: x86: change PIT discard tick policy Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 19:50 +0100
  [PATCH v2 08/14] KVM: x86: remove notifiers from PIT discard policy Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
    Re: [PATCH v2 08/14] KVM: x86: remove notifiers from PIT discard  policy Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 19:10 +0100
    Re: [PATCH v2 08/14] KVM: x86: remove notifiers from PIT discard  policy Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 19:10 +0100
      Re: [PATCH v2 08/14] KVM: x86: remove notifiers from PIT discard  policy Radim Krčmář <rkrcmar@redhat.com> - 2016-02-19 16:10 +0100
        Re: [PATCH v2 08/14] KVM: x86: remove notifiers from PIT discard  policy Paolo Bonzini <pbonzini@redhat.com> - 2016-02-19 16:10 +0100
          Re: [PATCH v2 08/14] KVM: x86: remove notifiers from PIT discard  policy Radim Krčmář <rkrcmar@redhat.com> - 2016-02-19 16:10 +0100
  [PATCH v2 10/14] KVM: x86: refactor kvm_free_pit Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 11/14] KVM: x86: remove pit and kvm from kvm_kpit_state Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
  [PATCH v2 07/14] KVM: x86: remove unnecessary uses of PIT state lock Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:20 +0100
    Re: [PATCH v2 07/14] KVM: x86: remove unnecessary uses of PIT state  lock Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 19:10 +0100
      Re: [PATCH v2 07/14] KVM: x86: remove unnecessary uses of PIT state  lock Radim Krčmář <rkrcmar@redhat.com> - 2016-02-19 15:50 +0100
  [PATCH v2 03/14] KVM: x86: add kvm_pit_reset_reinject Radim Krčmář <rkrcmar@redhat.com> - 2016-02-17 20:30 +0100
  Re: [PATCH v2 00/14] KVM: x86: change PIT discard policy and untangle  related code Paolo Bonzini <pbonzini@redhat.com> - 2016-02-18 19:20 +0100

csiph-web