Re: [PATCH 1/2] x86/kvm: revert commit 76b4f357d0e7d8f6f00

From: Ben Gardon
Date: Mon Nov 08 2021 - 15:15:57 EST


On Mon, Nov 8, 2021 at 12:14 PM Ben Gardon <bgardon@xxxxxxxxxx> wrote:
>
> On Mon, Sep 13, 2021 at 7:51 AM Juergen Gross <jgross@xxxxxxxx> wrote:
> >
> > Commit 76b4f357d0e7d8f6f00 ("x86/kvm: fix vcpu-id indexed array sizes")
> > has wrong reasoning, as KVM_MAX_VCPU_ID is not defining the maximum
> > allowed vcpu-id as its name suggests, but the number of vcpu-ids.
> >
> > So revert this patch again.
> >
> > Suggested-by: Eduardo Habkost <ehabkost@xxxxxxxxxx>
> > Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
>
> The original commit 76b4f357d0e7d8f6f00 CC'ed Stable but this revert
> does not. Looking at the stable branches, I see the original has been
> reverted but this hasn't. Should this be added to Stable as well?

*the original has been incorporated into the stable branches but this hasn't.

>
> > ---
> > arch/x86/kvm/ioapic.c | 2 +-
> > arch/x86/kvm/ioapic.h | 4 ++--
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/arch/x86/kvm/ioapic.c b/arch/x86/kvm/ioapic.c
> > index ff005fe738a4..698969e18fe3 100644
> > --- a/arch/x86/kvm/ioapic.c
> > +++ b/arch/x86/kvm/ioapic.c
> > @@ -96,7 +96,7 @@ static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic,
> > static void rtc_irq_eoi_tracking_reset(struct kvm_ioapic *ioapic)
> > {
> > ioapic->rtc_status.pending_eoi = 0;
> > - bitmap_zero(ioapic->rtc_status.dest_map.map, KVM_MAX_VCPU_ID + 1);
> > + bitmap_zero(ioapic->rtc_status.dest_map.map, KVM_MAX_VCPU_ID);
> > }
> >
> > static void kvm_rtc_eoi_tracking_restore_all(struct kvm_ioapic *ioapic);
> > diff --git a/arch/x86/kvm/ioapic.h b/arch/x86/kvm/ioapic.h
> > index bbd4a5d18b5d..27e61ff3ac3e 100644
> > --- a/arch/x86/kvm/ioapic.h
> > +++ b/arch/x86/kvm/ioapic.h
> > @@ -39,13 +39,13 @@ struct kvm_vcpu;
> >
> > struct dest_map {
> > /* vcpu bitmap where IRQ has been sent */
> > - DECLARE_BITMAP(map, KVM_MAX_VCPU_ID + 1);
> > + DECLARE_BITMAP(map, KVM_MAX_VCPU_ID);
> >
> > /*
> > * Vector sent to a given vcpu, only valid when
> > * the vcpu's bit in map is set
> > */
> > - u8 vectors[KVM_MAX_VCPU_ID + 1];
> > + u8 vectors[KVM_MAX_VCPU_ID];
> > };
> >
> >
> > --
> > 2.26.2
> >