mce: Replace BUG() with a console warning in the MCE handler.
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 9 Jul 2010 11:21:31 +0000 (12:21 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 9 Jul 2010 11:21:31 +0000 (12:21 +0100)
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/arch/x86/cpu/mcheck/amd_nonfatal.c

index d0eb69c39e0f21746302b2ebd5350ec9b8dd9069..4815253639f81cf31b61f4150acdb84c4cd6f001 100644 (file)
@@ -152,14 +152,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);