Message ID | 20171212164232.2908-2-christoffer.dall@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | [v4.9,backport] KVM: arm/arm64: vgic-its: Preserve the revious read from the pending table | expand |
On Tue, Dec 12, 2017 at 5:42 PM, Christoffer Dall <christoffer.dall@linaro.org> wrote: > From: Marc Zyngier <marc.zyngier@arm.com> > > Commit 64afe6e9eb4841f35317da4393de21a047a883b3 upstream. Please disregard this, I accidentally backported the arm64 patch instead of the arm patch. Another one (the correct one, hopefully) incoming. > > 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> > Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> > Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org> > --- > 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 4660a7d04eea..bbd4a988e8c1 100644 > --- a/virt/kvm/arm/vgic/vgic-its.c > +++ b/virt/kvm/arm/vgic/vgic-its.c > @@ -322,6 +322,7 @@ static int its_sync_lpi_pending_table(struct kvm_vcpu *vcpu) > int ret = 0; > u32 *intids; > int nr_irqs, i; > + u8 pendmask; > > nr_irqs = vgic_copy_lpi_list(vcpu->kvm, &intids); > if (nr_irqs < 0) > @@ -329,7 +330,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 >
On Tue, Dec 12, 2017 at 5:53 PM, Christoffer Dall <christoffer.dall@linaro.org> wrote: > On Tue, Dec 12, 2017 at 5:42 PM, Christoffer Dall > <christoffer.dall@linaro.org> wrote: >> From: Marc Zyngier <marc.zyngier@arm.com> >> >> Commit 64afe6e9eb4841f35317da4393de21a047a883b3 upstream. > > Please disregard this, I accidentally backported the arm64 patch > instead of the arm patch. > > Another one (the correct one, hopefully) incoming. > Actually, do NOT disregard this one, but apply this one. I'll reply to the patch that you should actually disregard. Not my day I guess. Sorry, -Christoffer
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c index 4660a7d04eea..bbd4a988e8c1 100644 --- a/virt/kvm/arm/vgic/vgic-its.c +++ b/virt/kvm/arm/vgic/vgic-its.c @@ -322,6 +322,7 @@ static int its_sync_lpi_pending_table(struct kvm_vcpu *vcpu) int ret = 0; u32 *intids; int nr_irqs, i; + u8 pendmask; nr_irqs = vgic_copy_lpi_list(vcpu->kvm, &intids); if (nr_irqs < 0) @@ -329,7 +330,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;