diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-07-09 12:43:52 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-07-09 12:43:52 +0100 |
commit | 4bde450e6debb5341d3e043639551eedf8d282e5 (patch) | |
tree | 7562a424207eff55c8828455f0abc32176d03667 | |
parent | 2e43443d5e9d2aa9dc76d6211ba267bdcbb8214a (diff) | |
download | xen-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.c | 13 |
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); |