On Tue, 2017-06-20 at 23:58 +1000, Nicholas Piggin wrote: > Emergency stacks have their thread_info mostly uninitialised, which in > particular means garbage preempt_count values. > > Emergency stack code runs with interrupts disabled entirely, and is > used very rarely, so this has been unnoticed so far. It was found by a > proposed new powerpc watchdog that takes a soft-NMI directly from the > masked_interrupt handler and using the emergency stack. That crashed at > BUG_ON(in_nmi()) in nmi_enter(). preempt_count()s were found to be > garbage. > > Reported-by: Abdul Haleem <abdha...@linux.vnet.ibm.com> > Signed-off-by: Nicholas Piggin <npig...@gmail.com> > --- > > FYI, this bug looks to be breaking linux-next on some powerpc > boxes due to interaction with a proposed new powerpc watchdog > driver Andrew has in his tree: > > http://marc.info/?l=linuxppc-embedded&m=149794320519941&w=2 > > arch/powerpc/include/asm/thread_info.h | 19 +++++++++++++++++++ > arch/powerpc/kernel/setup_64.c | 6 +++--- > 2 files changed, 22 insertions(+), 3 deletions(-)
Hi Nicholas, Thanks for the patch, Verified on next-20170621 and PowerPC bare-metal boots fine with your patch Tested-by: Abdul Haleem <abdha...@linux.vnet.ibm.com> Thanks for all your support. -- Regard's Abdul Haleem IBM Linux Technology Centre