>>> On 24.02.17 at 11:52, <haozhong.zh...@intel.com> wrote: > --- a/xen/arch/x86/cpu/mcheck/mce.c > +++ b/xen/arch/x86/cpu/mcheck/mce.c > @@ -1621,8 +1621,8 @@ 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); > + /* At least a default handler should be registered for Intel CPU. */ > + ASSERT(handler_num || boot_cpu_data.x86_vendor != X86_VENDOR_INTEL); > > local_mi = (struct mc_info*)mctelem_dataptr(mctc); > x86_mcinfo_lookup(mic, local_mi, MC_TYPE_GLOBAL); > @@ -1656,7 +1656,8 @@ static enum mce_result mce_action(const struct > cpu_user_regs *regs, > break; > } > } > - ASSERT(i != handler_num); > + ASSERT(i != handler_num || > + boot_cpu_data.x86_vendor != X86_VENDOR_INTEL); > } > > return worst_result;
I think both ASSERT()s should simply be removed: The code is fine with the conditions they check violated, and debug builds can't have worked due to their presence on AMD at all (yet production builds would have been fine). Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel