]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
mce: Replace BUG() with a console warning in the MCE handler.
authorKeith Coleman <keith.coleman@n2servers.com>
Mon, 9 May 2011 07:06:33 +0000 (03:06 -0400)
committerKeith Coleman <keith.coleman@n2servers.com>
Mon, 9 May 2011 07:06:33 +0000 (03:06 -0400)
If the hardware reports corrected errors that we didn't see through
the status MSRs, complain on the console but don't BUG() the machine.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
xen-unstable changeset:   21757:50cf787b70eb
xen-unstable date:        Fri Jul 09 12:21:31 2010 +0100

xen/arch/x86/cpu/mcheck/amd_nonfatal.c

index d354b1f06b2bfefa3ef074c63593be1fd9410117..5431a332149bfbf7c1a4f26b3caeb55a392adb10 100644 (file)
@@ -155,14 +155,19 @@ static void mce_amd_work_fn(void *data)
 
                /* HW does not count *all* kinds of correctable errors.
                 * Thus it is possible, that the polling routine finds an
-                * correctable error even if the HW reports nothing.
-                * However, the other way around is not possible (= BUG).
-                */ 
+                * correctable error even if the HW reports nothing. */ 
                if (counter > 0) {
                        /* HW reported correctable errors,
                         * the polling routine did not find...
                         */
-                       BUG_ON(adjust == 0);
+                       if (adjust == 0) {
+                               printk("CPU counter reports %"PRIu32
+                                       " correctable hardware error%s that %s"
+                                       " not reported by the status MSRs\n",
+                                       counter,
+                                       (counter == 1 ? "" : "s"),
+                                       (counter == 1 ? "was" : "were"));
+                       }
                        /* subtract 1 to not double count the error 
                         * from the polling service routine */ 
                        adjust += (counter - 1);