@@ -53,8 +53,6 @@ int kvm_set_migration_log(int enable);
int kvm_has_sync_mmu(void);
int kvm_has_vcpu_events(void);
-int kvm_put_vcpu_events(CPUState *env, int level);
-int kvm_get_vcpu_events(CPUState *env);
void kvm_setup_guest_memory(void *start, size_t size);
@@ -986,6 +986,8 @@ void kvm_arch_load_regs(CPUState *env, int level)
/* Avoid deadlock: no user space IRQ will ever clear it. */
env->halted = 0;
}
+
+ kvm_put_vcpu_events(env, level);
}
void kvm_load_tsc(CPUState *env)
@@ -1157,6 +1159,7 @@ void kvm_arch_save_regs(CPUState *env)
}
}
kvm_arch_save_mpstate(env);
+ kvm_get_vcpu_events(env);
}
static void do_cpuid_ent(struct kvm_cpuid_entry2 *e, uint32_t function,
@@ -1231,7 +1234,7 @@ int kvm_arch_init_vcpu(CPUState *cenv)
qemu_kvm_load_lapic(cenv);
- cenv->interrupt_injected = -1;
+ kvm_arch_reset_vcpu(cenv);
#ifdef KVM_CPUID_SIGNATURE
/* Paravirtualization CPUIDs */
@@ -1398,7 +1401,6 @@ void kvm_arch_push_nmi(void *opaque)
void kvm_arch_cpu_reset(CPUState *env)
{
kvm_arch_reset_vcpu(env);
- kvm_put_vcpu_events(env, KVM_PUT_RESET_STATE);
kvm_reset_mpstate(env);
if (!cpu_is_bsp(env) && !kvm_irqchip_in_kernel()) {
env->interrupt_request &= ~CPU_INTERRUPT_HARD;
@@ -789,7 +789,7 @@ static int kvm_get_mp_state(CPUState *env)
}
#endif
-int kvm_put_vcpu_events(CPUState *env, int level)
+static int kvm_put_vcpu_events(CPUState *env, int level)
{
#ifdef KVM_CAP_VCPU_EVENTS
struct kvm_vcpu_events events;
@@ -825,7 +825,7 @@ int kvm_put_vcpu_events(CPUState *env, int level)
#endif
}
-int kvm_get_vcpu_events(CPUState *env)
+static int kvm_get_vcpu_events(CPUState *env)
{
#ifdef KVM_CAP_VCPU_EVENTS
struct kvm_vcpu_events events;
@@ -5,7 +5,6 @@
#include "exec-all.h"
#include "kvm.h"
-#include "qemu-kvm.h"
static const VMStateDescription vmstate_segment = {
.name = "segment",
@@ -322,10 +321,6 @@ static void cpu_pre_save(void *opaque)
CPUState *env = opaque;
int i;
- if (kvm_enabled()) {
- kvm_get_vcpu_events(env);
- }
-
/* FPU */
env->fpus_vmstate = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11;
env->fptag_vmstate = 0;
@@ -362,7 +357,6 @@ static int cpu_post_load(void *opaque, int version_id)
if (kvm_enabled()) {
kvm_load_tsc(env);
- kvm_put_vcpu_events(env, KVM_PUT_FULL_STATE);
}
return 0;