On 07.12.2017 15:18, Roman Kagan wrote: > Move kvm.arch.hyperv initialization and cleanup to separate functions. > > For now only a mutex is inited in the former, and the latter is empty; > more stuff will go in there in a followup patch. > > Signed-off-by: Roman Kagan <rkagan@xxxxxxxxxxxxx> > --- > v1 -> v2: > - fix subject prefix should be "kvm: x86: " ;) > > arch/x86/kvm/hyperv.h | 3 +++ > arch/x86/kvm/hyperv.c | 9 +++++++++ > arch/x86/kvm/x86.c | 4 +++- > 3 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/hyperv.h b/arch/x86/kvm/hyperv.h > index e637631a9574..cc2468244ca2 100644 > --- a/arch/x86/kvm/hyperv.h > +++ b/arch/x86/kvm/hyperv.h > @@ -88,4 +88,7 @@ void kvm_hv_process_stimers(struct kvm_vcpu *vcpu); > void kvm_hv_setup_tsc_page(struct kvm *kvm, > struct pvclock_vcpu_time_info *hv_clock); > > +void kvm_hv_init_vm(struct kvm *kvm); > +void kvm_hv_destroy_vm(struct kvm *kvm); > + > #endif > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index dc97f2544b6f..015fb06c7522 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -1301,3 +1301,12 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu) > kvm_hv_hypercall_set_result(vcpu, ret); > return 1; > } > + > +void kvm_hv_init_vm(struct kvm *kvm) > +{ > + mutex_init(&kvm->arch.hyperv.hv_lock); > +} > + > +void kvm_hv_destroy_vm(struct kvm *kvm) > +{ > +} > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index eee8e7faf1af..db130b7030e7 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -8149,7 +8149,6 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) > > raw_spin_lock_init(&kvm->arch.tsc_write_lock); > mutex_init(&kvm->arch.apic_map_lock); > - mutex_init(&kvm->arch.hyperv.hv_lock); > spin_lock_init(&kvm->arch.pvclock_gtod_sync_lock); > > kvm->arch.kvmclock_offset = -ktime_get_boot_ns(); > @@ -8158,6 +8157,8 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) > INIT_DELAYED_WORK(&kvm->arch.kvmclock_update_work, kvmclock_update_fn); > INIT_DELAYED_WORK(&kvm->arch.kvmclock_sync_work, kvmclock_sync_fn); > > + kvm_hv_init_vm(kvm); > + wonder if that empty line is really needed. > kvm_page_track_init(kvm); > kvm_mmu_init_vm(kvm); > > @@ -8292,6 +8293,7 @@ void kvm_arch_destroy_vm(struct kvm *kvm) > kvfree(rcu_dereference_check(kvm->arch.apic_map, 1)); > kvm_mmu_uninit_vm(kvm); > kvm_page_track_cleanup(kvm); > + kvm_hv_destroy_vm(kvm); > } > > void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *free, > Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> -- Thanks, David / dhildenb