diff mbox series

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

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

Commit Message

Jürgen Groß Sept. 13, 2021, 1:57 p.m. UTC
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(-)

Comments

Ben Gardon Nov. 8, 2021, 8:14 p.m. UTC | #1
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
>
Ben Gardon Nov. 8, 2021, 8:15 p.m. UTC | #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
> >
Jürgen Groß Nov. 9, 2021, 8:46 a.m. UTC | #3
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
Ben Gardon Nov. 9, 2021, 5:15 p.m. UTC | #4
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 mbox series

Patch

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];
 };