On Wed, Jul 31, 2024 at 11:31 AM <flyingpenghao@xxxxxxxxx> wrote: > > From: Peng Hao <flyingpeng@xxxxxxxxxxx> > > memslot_rmap_alloc is called when kvm_memslot_have_rmaps is enabled, > so memslot_rmap_free in the exception process should also be called > under the same conditions. > > Signed-off-by: Peng Hao <flyingpeng@xxxxxxxxxxx> The cost of this is basically irrelevant; in fact the same unconditional call is present in kvm_arch_free_memslot(). However, changing kvm_alloc_memslot_metadata's out_free label to call kvm_arch_free_memslot(slot) could be a small but valid cleanup. Paolo > --- > arch/x86/kvm/x86.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index af6c8cf6a37a..00a1d96699b8 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -12947,7 +12947,8 @@ static int kvm_alloc_memslot_metadata(struct kvm *kvm, > return 0; > > out_free: > - memslot_rmap_free(slot); > + if (kvm_memslots_have_rmaps(kvm)) > + memslot_rmap_free(slot); > > for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { > vfree(slot->arch.lpage_info[i - 1]); > -- > 2.27.0 >