+1
-6
arch/x86/kvm/x86.c
+1
-6
arch/x86/kvm/x86.c
···
12741
12741
"does not run without ignore_msrs=1, please report it to kvm@vger.kernel.org.\n");
12742
12742
}
12743
12743
12744
+
once_init(&kvm->arch.nx_once);
12744
12745
return 0;
12745
12746
12746
12747
out_uninit_mmu:
···
12749
12748
kvm_page_track_cleanup(kvm);
12750
12749
out:
12751
12750
return ret;
12752
-
}
12753
-
12754
-
int kvm_arch_post_init_vm(struct kvm *kvm)
12755
-
{
12756
-
once_init(&kvm->arch.nx_once);
12757
-
return 0;
12758
12751
}
12759
12752
12760
12753
static void kvm_unload_vcpu_mmu(struct kvm_vcpu *vcpu)
-1
include/linux/kvm_host.h
-1
include/linux/kvm_host.h
···
1615
1615
bool kvm_arch_dy_runnable(struct kvm_vcpu *vcpu);
1616
1616
bool kvm_arch_dy_has_pending_interrupt(struct kvm_vcpu *vcpu);
1617
1617
bool kvm_arch_vcpu_preempted_in_kernel(struct kvm_vcpu *vcpu);
1618
-
int kvm_arch_post_init_vm(struct kvm *kvm);
1619
1618
void kvm_arch_pre_destroy_vm(struct kvm *kvm);
1620
1619
void kvm_arch_create_vm_debugfs(struct kvm *kvm);
1621
1620
-15
virt/kvm/kvm_main.c
-15
virt/kvm/kvm_main.c
···
1071
1071
}
1072
1072
1073
1073
/*
1074
-
* Called after the VM is otherwise initialized, but just before adding it to
1075
-
* the vm_list.
1076
-
*/
1077
-
int __weak kvm_arch_post_init_vm(struct kvm *kvm)
1078
-
{
1079
-
return 0;
1080
-
}
1081
-
1082
-
/*
1083
1074
* Called just after removing the VM from the vm_list, but before doing any
1084
1075
* other destruction.
1085
1076
*/
···
1190
1199
if (r)
1191
1200
goto out_err_no_debugfs;
1192
1201
1193
-
r = kvm_arch_post_init_vm(kvm);
1194
-
if (r)
1195
-
goto out_err;
1196
-
1197
1202
mutex_lock(&kvm_lock);
1198
1203
list_add(&kvm->vm_list, &vm_list);
1199
1204
mutex_unlock(&kvm_lock);
···
1199
1212
1200
1213
return kvm;
1201
1214
1202
-
out_err:
1203
-
kvm_destroy_vm_debugfs(kvm);
1204
1215
out_err_no_debugfs:
1205
1216
kvm_coalesced_mmio_free(kvm);
1206
1217
out_no_coalesced_mmio: