Hi Mahesh, > diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c > index a1475e6..b23b323 100644 > --- a/arch/powerpc/kernel/mce.c > +++ b/arch/powerpc/kernel/mce.c > @@ -221,6 +221,8 @@ static void machine_check_process_queued_event(struct > irq_work *work) > { > int index; > > + add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE); > + This bit makes sense...
> diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c > index ff365f9..af97e81 100644 > --- a/arch/powerpc/kernel/traps.c > +++ b/arch/powerpc/kernel/traps.c > @@ -741,6 +739,8 @@ void machine_check_exception(struct pt_regs *regs) > > __this_cpu_inc(irq_stat.mce_exceptions); > > + add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE); > + But this bit I'm not sure about. Isn't machine_check_exception called from asm in kernel/exceptions-64s.S? As in, it's called really early/in real mode? Regards, Daniel > /* See if any machine dependent calls. In theory, we would want > * to call the CPU first, and call the ppc_md. one if the CPU > * one returns a positive number. However there is existing code