]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
x86/MCE: bypass uninitialized vcpu in vMCE injection
authorKai Huang <kai.huang@linux.intel.com>
Wed, 14 May 2014 08:54:39 +0000 (10:54 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 14 May 2014 08:54:39 +0000 (10:54 +0200)
Dom0 may bring up less number of vCPUs than xen hypervisor actually created for
it, and in this case, on Intel platform, vMCE injection to dom0 will fail due to
injecting vMCE to uninitialized vcpu, and cause dom0 crash.

Signed-off-by: Kai Huang <kai.huang@linux.intel.com>
Acked-by: Christoph Egger <chegger@amazon.de>
xen/arch/x86/cpu/mcheck/vmce.c

index 3f3ef3cc63c88bf9d9f3016d546338489aa5abe0..ba1693c3712bdf3823f4cb8125353836b8b226ff 100644 (file)
@@ -356,6 +356,10 @@ int inject_vmce(struct domain *d, int vcpu)
         if ( vcpu != VMCE_INJECT_BROADCAST && vcpu != v->vcpu_id )
             continue;
 
+        /* Don't inject to uninitialized VCPU. */
+        if ( !v->is_initialised )
+            continue;
+
         if ( (has_hvm_container_domain(d) ||
               guest_has_trap_callback(d, v->vcpu_id, TRAP_machine_check)) &&
              !test_and_set_bool(v->mce_pending) )