summaryrefslogtreecommitdiffstats
path: root/drivers/misc/cxl/cxl.h
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-06-21 07:58:29 +0200
committerMichael Ellerman <mpe@ellerman.id.au>2017-06-23 05:25:38 +0200
commit34f19ff1b5a0d11e46df479623d6936460105c9f (patch)
treecb5697ee0cac4b2db8afbf9127be4f920eff0cba /drivers/misc/cxl/cxl.h
parentpowerpc/powernv/npu-dma: Add explicit flush when sending an ATSD (diff)
downloadlinux-34f19ff1b5a0d11e46df479623d6936460105c9f.tar.xz
linux-34f19ff1b5a0d11e46df479623d6936460105c9f.zip
powerpc/64: Initialise thread_info for emergency stacks
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. To fix this, zero the entire THREAD_SIZE allocation, and initialize the thread_info. Cc: stable@vger.kernel.org Reported-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> [mpe: Move it all into setup_64.c, use a function not a macro. Fix crashes on Cell by setting preempt_count to 0 not HARDIRQ_OFFSET] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'drivers/misc/cxl/cxl.h')
0 files changed, 0 insertions, 0 deletions