|
@@ -1896,6 +1896,16 @@ void kvm_cpu_synchronize_post_init(CPUState *cpu)
|
|
run_on_cpu(cpu, do_kvm_cpu_synchronize_post_init, RUN_ON_CPU_NULL);
|
|
run_on_cpu(cpu, do_kvm_cpu_synchronize_post_init, RUN_ON_CPU_NULL);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void do_kvm_cpu_synchronize_pre_loadvm(CPUState *cpu, run_on_cpu_data arg)
|
|
|
|
+{
|
|
|
|
+ cpu->kvm_vcpu_dirty = true;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void kvm_cpu_synchronize_pre_loadvm(CPUState *cpu)
|
|
|
|
+{
|
|
|
|
+ run_on_cpu(cpu, do_kvm_cpu_synchronize_pre_loadvm, RUN_ON_CPU_NULL);
|
|
|
|
+}
|
|
|
|
+
|
|
#ifdef KVM_HAVE_MCE_INJECTION
|
|
#ifdef KVM_HAVE_MCE_INJECTION
|
|
static __thread void *pending_sigbus_addr;
|
|
static __thread void *pending_sigbus_addr;
|
|
static __thread int pending_sigbus_code;
|
|
static __thread int pending_sigbus_code;
|