Message ID | 20210506184241.618958-2-bgardon@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Lazily allocate memslot rmaps | expand |
On 06.05.21 20:42, Ben Gardon wrote: > Small code deduplication. No functional change expected. > > Signed-off-by: Ben Gardon <bgardon@google.com> > --- > arch/x86/kvm/x86.c | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index cf3b67679cf0..5bcf07465c47 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -10818,17 +10818,23 @@ void kvm_arch_destroy_vm(struct kvm *kvm) > kvm_hv_destroy_vm(kvm); > } > > -void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) > +static void free_memslot_rmap(struct kvm_memory_slot *slot) > { > int i; > > for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { > kvfree(slot->arch.rmap[i]); > slot->arch.rmap[i] = NULL; > + } > +} > > - if (i == 0) > - continue; > +void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) > +{ > + int i; > + > + free_memslot_rmap(slot); > > + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { > kvfree(slot->arch.lpage_info[i - 1]); > slot->arch.lpage_info[i - 1] = NULL; > } > @@ -10894,12 +10900,9 @@ static int kvm_alloc_memslot_metadata(struct kvm_memory_slot *slot, > return 0; > > out_free: > - for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { > - kvfree(slot->arch.rmap[i]); > - slot->arch.rmap[i] = NULL; > - if (i == 0) > - continue; > + free_memslot_rmap(slot); > > + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { > kvfree(slot->arch.lpage_info[i - 1]); > slot->arch.lpage_info[i - 1] = NULL; > } > Reviewed-by: David Hildenbrand <david@redhat.com>
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index cf3b67679cf0..5bcf07465c47 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -10818,17 +10818,23 @@ void kvm_arch_destroy_vm(struct kvm *kvm) kvm_hv_destroy_vm(kvm); } -void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) +static void free_memslot_rmap(struct kvm_memory_slot *slot) { int i; for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { kvfree(slot->arch.rmap[i]); slot->arch.rmap[i] = NULL; + } +} - if (i == 0) - continue; +void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot) +{ + int i; + + free_memslot_rmap(slot); + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { kvfree(slot->arch.lpage_info[i - 1]); slot->arch.lpage_info[i - 1] = NULL; } @@ -10894,12 +10900,9 @@ static int kvm_alloc_memslot_metadata(struct kvm_memory_slot *slot, return 0; out_free: - for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) { - kvfree(slot->arch.rmap[i]); - slot->arch.rmap[i] = NULL; - if (i == 0) - continue; + free_memslot_rmap(slot); + for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) { kvfree(slot->arch.lpage_info[i - 1]); slot->arch.lpage_info[i - 1] = NULL; }
Small code deduplication. No functional change expected. Signed-off-by: Ben Gardon <bgardon@google.com> --- arch/x86/kvm/x86.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-)