linux/arch/powerpc
Nathan Lynch ed2213bfb1 powerpc/rtas: avoid device tree lookups in rtas_os_term()
rtas_os_term() is called during panic. Its behavior depends on a couple
of conditions in the /rtas node of the device tree, the traversal of
which entails locking and local IRQ state changes. If the kernel panics
while devtree_lock is held, rtas_os_term() as currently written could
hang.

Instead of discovering the relevant characteristics at panic time,
cache them in file-static variables at boot. Note the lookup for
"ibm,extended-os-term" is converted to of_property_read_bool() since it
is a boolean property, not an RTAS function token.

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Andrew Donnellan <ajd@linux.ibm.com>
[mpe: Incorporate suggested change from Nick]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221118150751.469393-4-nathanl@linux.ibm.com
2022-12-07 22:22:22 +11:00
..
boot powerpc/dts/fsl: Fix pca954x i2c-mux node names 2022-12-06 23:15:53 +11:00
configs - Yu Zhao's Multi-Gen LRU patches are here. They've been under test in 2022-10-10 17:53:04 -07:00
crypto treewide: use get_random_bytes() when possible 2022-10-11 17:42:58 -06:00
include powerpc/rtas: document rtas_call() 2022-12-07 22:20:33 +11:00
kernel powerpc/rtas: avoid device tree lookups in rtas_os_term() 2022-12-07 22:22:22 +11:00
kexec powerpc: Take in account addition CPU node when building kexec FDT 2022-12-07 20:19:04 +11:00
kvm powerpc: add a definition for the marker offset within the interrupt frame 2022-12-02 17:54:08 +11:00
lib powerpc/code-patching: Remove protection against patching init addresses after init 2022-12-02 21:59:57 +11:00
math-emu powerpc/math-emu: Inhibit W=1 warnings 2022-09-08 11:11:18 +10:00
mm powerpc/code-patching: Remove protection against patching init addresses after init 2022-12-02 21:59:57 +11:00
net powerpc/bpf/32: Fix Oops on tail call tests 2022-11-24 23:05:10 +11:00
perf powerpc/hv-gpci: Fix hv_gpci event list 2022-12-02 20:39:26 +11:00
platforms powerpc/pseries: unregister VPA when hot unplugging a CPU 2022-12-07 20:30:23 +11:00
purgatory powerpc/purgatory: Omit use of bin2c 2022-07-27 21:36:03 +10:00
sysdev powerpc/fsl-pci: Choose PCI host bridge with alias pci0 as the primary 2022-11-30 21:46:48 +11:00
tools powerpc/64: Add UADDR64 relocation support 2022-03-09 21:47:53 +11:00
xmon powerpc: Rename STACK_FRAME_MARKER and derive it from frame offset 2022-12-02 17:54:08 +11:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig powerpc/64: Sanitise user registers on interrupt in pseries, POWERNV 2022-12-02 20:46:09 +11:00
Kconfig.debug powerpc: Add support for early debugging via Serial 16550 console 2022-09-28 19:22:09 +10:00
Makefile Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Makefile.postlink