diff mbox

[v3,6/7] xen/mce: remove ASSERT's about mce_[u|d]handler_num in mce_action()

Message ID 20170308015816.13119-1-haozhong.zhang@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Haozhong Zhang March 8, 2017, 1:58 a.m. UTC
Those assertions as well as mce_[u|d]handlers[], mce_[u|d]handler_num
and mce_action() were intel only and lifted to the common code by c/s
3a91769d6e1. However, MCE handling on AMD does not use mce_[u|d]handlers[]
before and after that commit, so assertions in mce_action() about their
size do not make sense for AMD. To be worse, they can crash the debug
build on AMD. Remove them to make the debug build work on AMD.

Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
---
Cc: Christoph Egger <chegger@amazon.de>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>

Changes in v3:
 * Explain the reason in the commit message.

Because other patches in v2 have got R-b or A-b, I only send v3 patch 6.
---
 xen/arch/x86/cpu/mcheck/mce.c | 4 ----
 1 file changed, 4 deletions(-)

Comments

Jan Beulich March 8, 2017, 8:25 a.m. UTC | #1
>>> On 08.03.17 at 02:58, <haozhong.zhang@intel.com> wrote:
> Those assertions as well as mce_[u|d]handlers[], mce_[u|d]handler_num
> and mce_action() were intel only and lifted to the common code by c/s
> 3a91769d6e1. However, MCE handling on AMD does not use mce_[u|d]handlers[]
> before and after that commit, so assertions in mce_action() about their
> size do not make sense for AMD. To be worse, they can crash the debug
> build on AMD. Remove them to make the debug build work on AMD.
> 
> Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
diff mbox

Patch

diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 35117f8..cd4f0ee 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1616,9 +1616,6 @@  static enum mce_result mce_action(const struct cpu_user_regs *regs,
         handlers = mce_uhandlers;
     }
 
-    /* At least a default handler should be registerd */
-    ASSERT(handler_num);
-
     local_mi = (struct mc_info*)mctelem_dataptr(mctc);
     x86_mcinfo_lookup(mic, local_mi, MC_TYPE_GLOBAL);
     if (mic == NULL) {
@@ -1651,7 +1648,6 @@  static enum mce_result mce_action(const struct cpu_user_regs *regs,
                 break;
             }
         }
-        ASSERT(i != handler_num);
     }
 
     return worst_result;