|
@@ -437,9 +437,8 @@ int kvm_unpark_vcpu(KVMState *s, unsigned long vcpu_id)
|
|
|
return kvm_fd;
|
|
|
}
|
|
|
|
|
|
-static void kvm_reset_parked_vcpus(void *param)
|
|
|
+static void kvm_reset_parked_vcpus(KVMState *s)
|
|
|
{
|
|
|
- KVMState *s = param;
|
|
|
struct KVMParkedVcpu *cpu;
|
|
|
|
|
|
QLIST_FOREACH(cpu, &s->kvm_parked_vcpus, node) {
|
|
@@ -2738,7 +2737,6 @@ static int kvm_init(MachineState *ms)
|
|
|
}
|
|
|
|
|
|
qemu_register_reset(kvm_unpoison_all, NULL);
|
|
|
- qemu_register_reset(kvm_reset_parked_vcpus, s);
|
|
|
|
|
|
if (s->kernel_irqchip_allowed) {
|
|
|
kvm_irqchip_create(s);
|
|
@@ -2908,6 +2906,10 @@ static void do_kvm_cpu_synchronize_post_reset(CPUState *cpu, run_on_cpu_data arg
|
|
|
void kvm_cpu_synchronize_post_reset(CPUState *cpu)
|
|
|
{
|
|
|
run_on_cpu(cpu, do_kvm_cpu_synchronize_post_reset, RUN_ON_CPU_NULL);
|
|
|
+
|
|
|
+ if (cpu == first_cpu) {
|
|
|
+ kvm_reset_parked_vcpus(kvm_state);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void do_kvm_cpu_synchronize_post_init(CPUState *cpu, run_on_cpu_data arg)
|