Message ID | 20171212164232.2908-1-christoffer.dall@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | [v4.14,backport] KVM: arm/arm64: vgic-its: Preserve the revious read from the pending table | expand |
On Tue, Dec 12, 2017 at 05:42:31PM +0100, Christoffer Dall wrote: > From: Marc Zyngier <marc.zyngier@arm.com> > > Commit 64afe6e9eb4841f35317da4393de21a047a883b3 upstream. > > 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(-) All 4 backports queued up, many thanks for them. greg k-h
On Thu, Dec 14, 2017 at 09:40:27PM +0100, Greg KH wrote: > On Tue, Dec 12, 2017 at 05:42:31PM +0100, Christoffer Dall wrote: > > From: Marc Zyngier <marc.zyngier@arm.com> > > > > Commit 64afe6e9eb4841f35317da4393de21a047a883b3 upstream. > > > > 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(-) > > All 4 backports queued up, many thanks for them. Hm, no, I messed up. I'm totally confused by the emails you sent and the "drop this" and "this is real" :) Can you resend just the patches you want applied? thanks, greg k-h
On Thu, Dec 14, 2017 at 9:48 PM, Greg KH <gregkh@linuxfoundation.org> wrote: > On Thu, Dec 14, 2017 at 09:40:27PM +0100, Greg KH wrote: >> On Tue, Dec 12, 2017 at 05:42:31PM +0100, Christoffer Dall wrote: >> > From: Marc Zyngier <marc.zyngier@arm.com> >> > >> > Commit 64afe6e9eb4841f35317da4393de21a047a883b3 upstream. >> > >> > 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(-) >> >> All 4 backports queued up, many thanks for them. > > Hm, no, I messed up. I'm totally confused by the emails you sent and > the "drop this" and "this is real" :) > Yeah, I had a bad day. Sorry about the confusion. > Can you resend just the patches you want applied? > Yes, all four incoming now. Thanks! -Christoffer
On Thu, Dec 14, 2017 at 09:57:54PM +0100, Christoffer Dall wrote: > On Thu, Dec 14, 2017 at 9:48 PM, Greg KH <gregkh@linuxfoundation.org> wrote: > > On Thu, Dec 14, 2017 at 09:40:27PM +0100, Greg KH wrote: > >> On Tue, Dec 12, 2017 at 05:42:31PM +0100, Christoffer Dall wrote: > >> > From: Marc Zyngier <marc.zyngier@arm.com> > >> > > >> > Commit 64afe6e9eb4841f35317da4393de21a047a883b3 upstream. > >> > > >> > 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(-) > >> > >> All 4 backports queued up, many thanks for them. > > > > Hm, no, I messed up. I'm totally confused by the emails you sent and > > the "drop this" and "this is real" :) > > > > Yeah, I had a bad day. Sorry about the confusion. > > > Can you resend just the patches you want applied? > > > > Yes, all four incoming now. Thanks, I should have this all now queued up properly, thanks for the resend. greg k-h
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c index 547f12dc4d54..d5a8bfe78bc4 100644 --- a/virt/kvm/arm/vgic/vgic-its.c +++ b/virt/kvm/arm/vgic/vgic-its.c @@ -393,6 +393,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, &intids); if (nr_irqs < 0) @@ -400,7 +401,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;