xen/mce: Register native mce handler as vMCE bounce back point
authorLiu, Jinsong <jinsong.liu@intel.com>
Thu, 7 Jun 2012 12:10:37 +0000 (20:10 +0800)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 19 Jul 2012 19:51:38 +0000 (15:51 -0400)
When Xen hypervisor inject vMCE to guest, use native mce handler
to handle it

Signed-off-by: Ke, Liping <liping.ke@intel.com>
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/xen/enlighten.c

index 9a6346865c498665a8384e71d8a34fcffa4ac4b2..0c1ab43f667257970dcaeb8296dc6b64d66ca1f1 100644 (file)
@@ -626,8 +626,8 @@ static int cvt_gate_to_trap(int vector, const gate_desc *val,
        /*
         * Look for known traps using IST, and substitute them
         * appropriately.  The debugger ones are the only ones we care
-        * about.  Xen will handle faults like double_fault and
-        * machine_check, so we should never see them.  Warn if
+        * about.  Xen will handle faults like double_fault,
+        * so we should never see them.  Warn if
         * there's an unexpected IST-using fault handler.
         */
        if (addr == (unsigned long)debug)
@@ -642,7 +642,11 @@ static int cvt_gate_to_trap(int vector, const gate_desc *val,
                return 0;
 #ifdef CONFIG_X86_MCE
        } else if (addr == (unsigned long)machine_check) {
-               return 0;
+               /*
+                * when xen hypervisor inject vMCE to guest,
+                * use native mce handler to handle it
+                */
+               ;
 #endif
        } else {
                /* Some other trap using IST? */