Nicholas Piggin <npig...@gmail.com> writes: > On Thu, 10 Nov 2016 12:35:59 +1100 > Michael Ellerman <m...@ellerman.id.au> wrote: > >> Nicholas Piggin <npig...@gmail.com> writes: >> >> > When exiting xmon with 'x' (exit and recover), oops_begin bails >> > out immediately, but die then calls __die() and oops_end(), which >> > cause a lot of bad things to happen. >> >> In fact oops_begin() returns 1, which oops_end() then passes directly to >> raw_local_irq_restore() as flags. On 64-bit that actually works because >> arch_local_irq_restore() takes just "en" (enable), not real flags. But >> on 32-bit it's supposed to be the MSR value. So that's impressively >> broken. > > Yeah, I guess most of the time you either go to debugger with > sysrq, or in case of a crash don't try to graceful recover.
Yeah. It's debatable whether we should even allow graceful recovery, but it's useful sometimes and regular users probably shouldn't have a debugger enabled anyway. cheers