On Tue, Dec 15, 2015 at 5:29 PM, Tony Luck <[email protected]> wrote: > Copy the existing page fault fixup mechanisms to create a new table > to be used when fixing machine checks. Note: > 1) At this time we only provide a macro to annotate assembly code > 2) We assume all fixups will in code builtin to the kernel. > 3) Only for x86_64 > 4) New code under CONFIG_MCE_KERNEL_RECOVERY (default 'n') > > Signed-off-by: Tony Luck <[email protected]>
Looks generally good. Reviewed-by: Andy Lutomirski <[email protected]> with trivial caveats: > int __init mcheck_init(void) > { > +#ifdef CONFIG_MCE_KERNEL_RECOVERY > + if (__stop___mcex_table > __start___mcex_table) > + sort_extable(__start___mcex_table, __stop___mcex_table); > +#endif This doesn't matter unless we sprout a lot of these, but it could be worthwhile to update sortextable.h as well. > +#ifdef CONFIG_MCE_KERNEL_RECOVERY > +int fixup_mcexception(struct pt_regs *regs) > +{ > + const struct exception_table_entry *fixup; > + unsigned long new_ip; > + > + fixup = search_mcexception_tables(regs->ip); > + if (fixup) { > + new_ip = ex_fixup_addr(fixup); > + > + regs->ip = new_ip; You could very easily save a line of code here :) > + return 1; > + } > + > + return 0; > +} > +#endif > + --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

