aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-07-09 12:43:52 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-07-09 12:43:52 +0100
commit4bde450e6debb5341d3e043639551eedf8d282e5 (patch)
tree7562a424207eff55c8828455f0abc32176d03667
parent2e43443d5e9d2aa9dc76d6211ba267bdcbb8214a (diff)
downloadxen-4bde450e6debb5341d3e043639551eedf8d282e5.tar.gz
xen-4bde450e6debb5341d3e043639551eedf8d282e5.tar.bz2
xen-4bde450e6debb5341d3e043639551eedf8d282e5.zip
mce: Replace BUG() with a console warning in the MCE handler.
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
-rw-r--r--xen/arch/x86/cpu/mcheck/amd_nonfatal.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 68d2e1fee6..6fd2ea7eeb 100644
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
@@ -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);