Re: [PATCH RFC v7 01/64] KVM: Fix memslot boundary condition for large page

From: Chao Peng
Date: Wed Jan 04 2023 - 22:41:50 EST


On Thu, Dec 22, 2022 at 01:16:04PM +0100, Borislav Petkov wrote:
> On Wed, Dec 14, 2022 at 01:39:53PM -0600, Michael Roth wrote:
> > From: Nikunj A Dadhania <nikunj@xxxxxxx>
> >
> > Aligned end boundary causes a kvm crash, handle the case.
> >
> > Signed-off-by: Nikunj A Dadhania <nikunj@xxxxxxx>
> > Signed-off-by: Michael Roth <michael.roth@xxxxxxx>
> > ---
> > arch/x86/kvm/mmu/mmu.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
> > index b1953ebc012e..b3ffc61c668c 100644
> > --- a/arch/x86/kvm/mmu/mmu.c
> > +++ b/arch/x86/kvm/mmu/mmu.c
> > @@ -7159,6 +7159,9 @@ static void kvm_update_lpage_private_shared_mixed(struct kvm *kvm,
> > for (gfn = first + pages; gfn < last; gfn += pages)
> > linfo_set_mixed(gfn, slot, level, false);
> >
> > + if (gfn == last)
> > + goto out;
>
> I'm guessing this was supposed to be "return;" here:

If we finally need this, this should be "continue;", we can't skip the
remaining huge page levels.

Thanks,
Chao
>
> arch/x86/kvm/mmu/mmu.c: In function ‘kvm_update_lpage_private_shared_mixed’:
> arch/x86/kvm/mmu/mmu.c:7090:25: error: label ‘out’ used but not defined
> 7090 | goto out;
> | ^~~~
>
> /me goes and digs deeper.
>
> Aha, it was a "return" but you reordered the patches and the one adding
> the out label:
>
> KVM: x86: Add 'update_mem_attr' x86 op
>
> went further down and this became the first but it didn't have the label
> anymore.
>
> Yeah, each patch needs to build successfully for bisection reasons, ofc.
>
> Thx.
>
> --
> Regards/Gruss,
> Boris.
>
> https://people.kernel.org/tglx/notes-about-netiquette