linux/arch/powerpc
Nicholas Piggin abc3fce76a Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled"
This reverts commit ebb37cf3ff.

That commit does not play well with soft-masked irq state
manipulations in idle, interrupt replay, and possibly others due to
tracing code sometimes using irq_work_queue (e.g., in
trace_hardirqs_on()). That can cause PACA_IRQ_DEC to become set when
it is not expected, and be ignored or cleared or cause warnings.

The net result seems to be missing an irq_work until the next timer
interrupt in the worst case which is usually not going to be noticed,
however it could be a long time if the tick is disabled, which is
against the spirit of irq_work and might cause real problems.

The idea is still solid, but it would need more work. It's not really
clear if it would be worth added complexity, so revert this for
now (not a straight revert, but replace with a comment explaining why
we might see interrupts happening, and gives git blame something to
find).

Fixes: ebb37cf3ff ("powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200402120401.1115883-1-npiggin@gmail.com
2020-04-03 16:55:34 +11:00
..
boot powerpc/boot: Delete unneeded .globl _zimage_start 2020-03-27 15:50:06 +11:00
configs powerpc/ps3: Set CONFIG_UEVENT_HELPER=y in ps3_defconfig 2020-04-03 00:09:59 +11:00
crypto crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
include powerpc/64: make buildable without CONFIG_COMPAT 2020-04-03 00:10:00 +11:00
kernel Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled" 2020-04-03 16:55:34 +11:00
kexec powerpc: Make setjmp/longjmp signature standard 2020-04-01 14:30:51 +11:00
kvm powerpc/64s/exception: Move KVM test to common code 2020-04-01 13:42:11 +11:00
lib powerpc/64/sstep: Ifdef the deprecated fast endian switch syscall 2020-04-01 13:42:13 +11:00
math-emu treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mm powerpc/32s: reorder Linux PTE bits to better match Hash PTE bits. 2020-03-25 12:09:27 +11:00
net treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
oprofile powerpc updates for 5.6 2020-02-04 13:06:46 +00:00
perf powerpc/perf: split callchain.c by bitness 2020-04-03 00:10:00 +11:00
platforms powerpc/pseries/ddw: Extend upper limit for huge DMA window for persistent memory 2020-04-03 12:22:47 +11:00
purgatory treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
sysdev powerpc/xive: Add a debugfs file to dump internal XIVE state 2020-03-27 00:20:38 +11:00
tools powerpc: Do not consider weak unresolved symbol relocations as bad 2020-01-31 20:17:22 +11:00
xmon powerpc: Make setjmp/longjmp signature standard 2020-04-01 14:30:51 +11:00
Kbuild powerpc/kexec: Move kexec files into a dedicated subdir. 2019-11-21 15:41:34 +11:00
Kconfig powerpc/64: Make COMPAT user-selectable disabled on littleendian by default. 2020-04-03 00:10:00 +11:00
Kconfig.debug powerpc/ptdump: Only enable PPC_CHECK_WX with STRICT_KERNEL_RWX 2020-01-23 21:31:13 +11:00
Makefile powerpc: Suppress .eh_frame generation 2020-04-01 14:30:51 +11:00
Makefile.postlink powerpc: Do not consider weak unresolved symbol relocations as bad 2020-01-31 20:17:22 +11:00