Re: [PATCH] powerpc/64: Initialise thread_info for emergency stacks
From: Abdul Haleem <hidden>
Date: 2017-06-21 09:25:45
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 <redacted> Signed-off-by: Nicholas Piggin <npiggin@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 <redacted> Thanks for all your support. -- Regard's Abdul Haleem IBM Linux Technology Centre