public inbox for kvmarm@lists.cs.columbia.edu
 help / color / mirror / Atom feed
From: Marc Zyngier <marc.zyngier@arm.com>
To: Christoffer Dall <cdall@linaro.org>
Cc: kvm@vger.kernel.org,
	Kristina Martsenko <kristina.martsenko@arm.com>,
	AKASHI Takahiro <takahiro.akashi@linaro.org>,
	kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/7] KVM: arm/arm64: vgic-its: Preserve the revious read from the pending table
Date: Thu, 16 Nov 2017 17:58:17 +0000	[thread overview]
Message-ID: <20171116175821.26544-4-marc.zyngier@arm.com> (raw)
In-Reply-To: <20171116175821.26544-1-marc.zyngier@arm.com>

The current pending table parsing code assumes that we keep the
previous read of the pending bits, but keep that variable in
the current block, making sure it is discarded on each loop.

We end-up using whatever is on the stack. Who knows, it might
just be the right thing...

Fixes: 33d3bc9556a7d ("KVM: arm64: vgic-its: Read initial LPI pending table")
Cc: stable@vger.kernel.org # 4.8
Reported-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
---
 virt/kvm/arm/vgic/vgic-its.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
index a3754ec719c4..370086006838 100644
--- a/virt/kvm/arm/vgic/vgic-its.c
+++ b/virt/kvm/arm/vgic/vgic-its.c
@@ -421,6 +421,7 @@ static int its_sync_lpi_pending_table(struct kvm_vcpu *vcpu)
 	u32 *intids;
 	int nr_irqs, i;
 	unsigned long flags;
+	u8 pendmask;
 
 	nr_irqs = vgic_copy_lpi_list(vcpu, &intids);
 	if (nr_irqs < 0)
@@ -428,7 +429,6 @@ static int its_sync_lpi_pending_table(struct kvm_vcpu *vcpu)
 
 	for (i = 0; i < nr_irqs; i++) {
 		int byte_offset, bit_nr;
-		u8 pendmask;
 
 		byte_offset = intids[i] / BITS_PER_BYTE;
 		bit_nr = intids[i] % BITS_PER_BYTE;
-- 
2.14.2

  parent reply	other threads:[~2017-11-16 17:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-16 17:58 [PATCH 0/7] KVM/ARM fixes for 4.15-rc1 Marc Zyngier
2017-11-16 17:58 ` [PATCH 1/7] KVM: arm/arm64: vgic-irqfd: Fix MSI entry allocation Marc Zyngier
2017-11-20 14:49   ` Christoffer Dall
2017-11-16 17:58 ` [PATCH 2/7] KVM: arm/arm64: vgic: Preserve the revious read from the pending table Marc Zyngier
2017-11-20 14:52   ` Christoffer Dall
2017-11-16 17:58 ` Marc Zyngier [this message]
2017-11-20 14:56   ` [PATCH 3/7] KVM: arm/arm64: vgic-its: " Christoffer Dall
2017-11-16 17:58 ` [PATCH 4/7] KVM: arm/arm64: vgic-its: Check result of allocation before use Marc Zyngier
2017-11-20 14:58   ` Christoffer Dall
2017-11-21 11:12     ` Marc Zyngier
2017-11-16 17:58 ` [PATCH 5/7] KVM: arm/arm64: vgic-v4: Only perform an unmap for valid vLPIs Marc Zyngier
2017-11-20 15:10   ` Christoffer Dall
2017-11-16 17:58 ` [PATCH 6/7] arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one Marc Zyngier
2017-11-16 17:58 ` [PATCH 7/7] arm: KVM: Fix " Marc Zyngier
2017-11-20 13:29   ` Christoffer Dall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171116175821.26544-4-marc.zyngier@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=cdall@linaro.org \
    --cc=kristina.martsenko@arm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=takahiro.akashi@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox