From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= Subject: [PATCH v2 03/14] KVM: x86: add kvm_pit_reset_reinject Date: Wed, 17 Feb 2016 20:14:45 +0100 Message-ID: <1455736496-374-4-git-send-email-rkrcmar@redhat.com> References: <1455736496-374-1-git-send-email-rkrcmar@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org, Paolo Bonzini , Yuki Shibuya To: linux-kernel@vger.kernel.org Return-path: In-Reply-To: <1455736496-374-1-git-send-email-rkrcmar@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org pit_state.pending and pit_state.irq_ack are always reset at the same time. Create a function for them. Signed-off-by: Radim Kr=C4=8Dm=C3=A1=C5=99 --- v2: split from a bigger patch. arch/x86/kvm/i8254.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c index 7d694ac7f4a4..bdbb3f076e72 100644 --- a/arch/x86/kvm/i8254.c +++ b/arch/x86/kvm/i8254.c @@ -321,6 +321,12 @@ static enum hrtimer_restart pit_timer_fn(struct hr= timer *data) return HRTIMER_NORESTART; } =20 +static inline void kvm_pit_reset_reinject(struct kvm_pit *pit) +{ + atomic_set(&pit->pit_state.pending, 0); + pit->pit_state.irq_ack =3D 1; +} + static void create_pit_timer(struct kvm *kvm, u32 val, int is_period) { struct kvm_kpit_state *ps =3D &kvm->arch.vpit->pit_state; @@ -343,8 +349,7 @@ static void create_pit_timer(struct kvm *kvm, u32 v= al, int is_period) ps->timer.function =3D pit_timer_fn; ps->kvm =3D ps->pit->kvm; =20 - atomic_set(&ps->pending, 0); - ps->irq_ack =3D 1; + kvm_pit_reset_reinject(ps->pit); =20 /* * Do not allow the guest to program periodic timers with small @@ -644,18 +649,15 @@ void kvm_pit_reset(struct kvm_pit *pit) } mutex_unlock(&pit->pit_state.lock); =20 - atomic_set(&pit->pit_state.pending, 0); - pit->pit_state.irq_ack =3D 1; + kvm_pit_reset_reinject(pit); } =20 static void pit_mask_notifer(struct kvm_irq_mask_notifier *kimn, bool = mask) { struct kvm_pit *pit =3D container_of(kimn, struct kvm_pit, mask_notif= ier); =20 - if (!mask) { - atomic_set(&pit->pit_state.pending, 0); - pit->pit_state.irq_ack =3D 1; - } + if (!mask) + kvm_pit_reset_reinject(pit); } =20 static const struct kvm_io_device_ops pit_dev_ops =3D { --=20 2.7.1