On 7/6/19 3:23 PM, Nicholas Piggin wrote: > Santosh Sivaraj's on July 6, 2019 7:26 am: >> If we take a UE on one of the instructions with a fixup entry, set nip >> to continue exucution at the fixup entry. Stop processing the event >> further or print it. > > Minor nit, but can you instead a field in the mce data structure that > describes the property of the event, and then the code that intends to > ignore such events can test for it (with an appropriate comment). > > So it would be has_fixup_handler or similar. Then queue_event can have > the logic > > /* > * Don't report this machine check because the caller has a fixup > * handler which will do the appropriate error handling and reporting. > */ > > >> @@ -565,9 +567,18 @@ static int mce_handle_derror(struct pt_regs *regs, >> return 0; >> } >> >> -static long mce_handle_ue_error(struct pt_regs *regs) >> +static long mce_handle_ue_error(struct pt_regs *regs, >> + struct mce_error_info *mce_err) >> { >> long handled = 0; >> + const struct exception_table_entry *entry; >> + >> + entry = search_exception_tables(regs->nip); > > Uh oh, this searches module exception tables too... we can't do that > in real mode, can we?
Yeah, we can not do that in real mode. Should we directly call search_extable() for kernel exception table ? > > Thanks, > Nick >