android_kernel_samsung_a7y1.../arch/powerpc
Nathan Lynch f4288ba0bf powerpc/pseries: correctly track irq state in default idle
[ Upstream commit 92c94dfb69e350471473fd3075c74bc68150879e ]

prep_irq_for_idle() is intended to be called before entering
H_CEDE (and it is used by the pseries cpuidle driver). However the
default pseries idle routine does not call it, leading to mismanaged
lazy irq state when the cpuidle driver isn't in use. Manifestations of
this include:

* Dropped IPIs in the time immediately after a cpu comes
  online (before it has installed the cpuidle handler), making the
  online operation block indefinitely waiting for the new cpu to
  respond.

* Hitting this WARN_ON in arch_local_irq_restore():
	/*
	 * We should already be hard disabled here. We had bugs
	 * where that wasn't the case so let's dbl check it and
	 * warn if we are wrong. Only do that when IRQ tracing
	 * is enabled as mfmsr() can be costly.
	 */
	if (WARN_ON_ONCE(mfmsr() & MSR_EE))
		__hard_irq_disable();

Call prep_irq_for_idle() from pseries_lpar_idle() and honor its
result.

Fixes: 363edbe2614a ("powerpc: Default arch idle could cede processor on pseries")
Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190910225244.25056-1-nathanl@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-07 07:43:17 +02:00
..
boot powerpc/boot: Fix missing check of lseek() return value 2020-04-06 18:15:35 +02:00
configs A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crypto A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
include powerpc/futex: Fix warning: 'oldval' may be used uninitialized in this function 2020-04-07 07:43:03 +02:00
kernel powerpc/64s/exception: machine check use correct cfar for late handler 2020-04-07 07:43:15 +02:00
kvm KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list 2020-04-06 19:04:35 +02:00
lib powerpc/lib: fix book3s/32 boot failure due to code patching 2020-04-06 17:01:53 +02:00
math-emu A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mm powerpc/numa: improve control of topology updates 2020-04-06 18:18:51 +02:00
net A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
oprofile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
perf A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
platforms powerpc/pseries: correctly track irq state in default idle 2020-04-07 07:43:17 +02:00
sysdev powerpc/4xx/uic: clear pending interrupt after irq type/pol change 2020-04-06 20:06:22 +02:00
xmon powerpc/64s: Improve RFI L1-D cache flush fallback 2020-04-06 16:38:58 +02:00
Kconfig powerpc/fsl: Add barrier_nospec implementation for NXP PowerPC Book3E 2020-04-06 16:40:00 +02:00
Kconfig.debug A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Makefile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
relocs_check.sh A750FXXU4CTBC 2020-03-27 21:51:54 +05:30