Message ID | 20210913135745.13944-2-jgross@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kvm: fix KVM_MAX_VCPU_ID handling | expand |
On Mon, Sep 13, 2021 at 7:51 AM Juergen Gross <jgross@suse.com> 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@redhat.com> > Signed-off-by: Juergen Gross <jgross@suse.com> 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? > --- > 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 >
On Mon, Nov 8, 2021 at 12:14 PM Ben Gardon <bgardon@google.com> wrote: > > On Mon, Sep 13, 2021 at 7:51 AM Juergen Gross <jgross@suse.com> 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@redhat.com> > > Signed-off-by: Juergen Gross <jgross@suse.com> > > 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 > >
On 08.11.21 21:15, Ben Gardon wrote: > On Mon, Nov 8, 2021 at 12:14 PM Ben Gardon <bgardon@google.com> wrote: >> >> On Mon, Sep 13, 2021 at 7:51 AM Juergen Gross <jgross@suse.com> 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@redhat.com> >>> Signed-off-by: Juergen Gross <jgross@suse.com> >> >> 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. Just yesterday I received mails that this patch has been added to the stable branches. Juergen
On Tue, Nov 9, 2021 at 12:47 AM Juergen Gross <jgross@suse.com> wrote: > > On 08.11.21 21:15, Ben Gardon wrote: > > On Mon, Nov 8, 2021 at 12:14 PM Ben Gardon <bgardon@google.com> wrote: > >> > >> On Mon, Sep 13, 2021 at 7:51 AM Juergen Gross <jgross@suse.com> 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@redhat.com> > >>> Signed-off-by: Juergen Gross <jgross@suse.com> > >> > >> 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. > > Just yesterday I received mails that this patch has been added to the > stable branches. > > > Juergen Oh wonderful, what a coincidence! Thanks, Ben
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]; };
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@redhat.com> Signed-off-by: Juergen Gross <jgross@suse.com> --- arch/x86/kvm/ioapic.c | 2 +- arch/x86/kvm/ioapic.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)