kvm: x86: Implicitly clear nmi_injected/pending on reset
authorJan Kiszka <jan.kiszka@siemens.com>
Fri, 21 Jan 2011 20:48:21 +0000 (21:48 +0100)
committerMarcelo Tosatti <mtosatti@redhat.com>
Sun, 23 Jan 2011 04:27:22 +0000 (02:27 -0200)
All CPUX86State variables before CPU_COMMON are automatically cleared on
reset. Reorder nmi_injected and nmi_pending to avoid having to touch
them explicitly.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
target-i386/cpu.h
target-i386/kvm.c

index a457423b4a2a5b7c640a1b0c4108d29b2e851427..af701a441229a0cfec0ad36506ec1240844597f4 100644 (file)
@@ -699,6 +699,10 @@ typedef struct CPUX86State {
     uint32_t smbase;
     int old_exception;  /* exception in flight */
 
+    /* KVM states, automatically cleared on reset */
+    uint8_t nmi_injected;
+    uint8_t nmi_pending;
+
     CPU_COMMON
 
     /* processor features (e.g. for CPUID insn) */
@@ -726,8 +730,6 @@ typedef struct CPUX86State {
     int32_t exception_injected;
     int32_t interrupt_injected;
     uint8_t soft_interrupt;
-    uint8_t nmi_injected;
-    uint8_t nmi_pending;
     uint8_t has_error_code;
     uint32_t sipi_vector;
     uint32_t cpuid_kvm_features;
index 72f9fdf24e3db0387f896a7a8c2bc4c40de690c7..b2c5ee0efeb530ad9285f2076b332bcdb2c4458a 100644 (file)
@@ -435,8 +435,6 @@ void kvm_arch_reset_vcpu(CPUState *env)
 {
     env->exception_injected = -1;
     env->interrupt_injected = -1;
-    env->nmi_injected = 0;
-    env->nmi_pending = 0;
     env->xcr0 = 1;
     if (kvm_irqchip_in_kernel()) {
         env->mp_state = cpu_is_bsp(env) ? KVM_MP_STATE_RUNNABLE :