]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
xen/mce: Change the machine check point
authorLiu Jinsong <jinsong.liu@intel.com>
Tue, 6 Dec 2011 21:26:16 +0000 (05:26 +0800)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 24 Feb 2012 05:29:00 +0000 (00:29 -0500)
This patch backport from Jeremy's pvops commit
073349667402682c997394b3fcdbbeb6707f368f

Enable MCE support in dom0, so that if a MCE happen and that MCE impact
dom0, dom0 can receive a vMCE.

Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
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: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/xen/enlighten.c

index c28824566aa617baebf3ac9339479e777e06ae6b..cfd1b8093163f807327ed991b2c97f2ed38d218a 100644 (file)
@@ -521,7 +521,7 @@ 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
+        * nmi, so we should never see them.  Warn if
         * there's an unexpected IST-using fault handler.
         */
        if (addr == (unsigned long)debug)
@@ -536,7 +536,10 @@ 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;
+               if (xen_initial_domain())
+                       addr = (unsigned long)machine_check;
+               else
+                       return 0;
 #endif
        } else {
                /* Some other trap using IST? */