Thread (4 messages) flat view 4 messages, 3 authors, 2017-06-21

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help