linux/arch/powerpc/sysdev
Nathan Lynch f88aabad33 Revert "powerpc/rtas: Implement reentrant rtas call"
At the time this was submitted by Leonardo, I confirmed -- or thought
I had confirmed -- with PowerVM partition firmware development that
the following RTAS functions:

- ibm,get-xive
- ibm,int-off
- ibm,int-on
- ibm,set-xive

were safe to call on multiple CPUs simultaneously, not only with
respect to themselves as indicated by PAPR, but with arbitrary other
RTAS calls:

https://lore.kernel.org/linuxppc-dev/875zcy2v8o.fsf@linux.ibm.com/

Recent discussion with firmware development makes it clear that this
is not true, and that the code in commit b664db8e3f ("powerpc/rtas:
Implement reentrant rtas call") is unsafe, likely explaining several
strange bugs we've seen in internal testing involving DLPAR and
LPM. These scenarios use ibm,configure-connector, whose internal state
can be corrupted by the concurrent use of the "reentrant" functions,
leading to symptoms like endless busy statuses from RTAS.

Fixes: b664db8e3f ("powerpc/rtas: Implement reentrant rtas call")
Cc: stable@vger.kernel.org # v5.8+
Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Reviewed-by: Laurent Dufour <laurent.dufour@fr.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220907220111.223267-1-nathanl@linux.ibm.com
2022-09-14 22:43:13 +10:00
..
ge powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
xics Revert "powerpc/rtas: Implement reentrant rtas call" 2022-09-14 22:43:13 +10:00
xive powerpc/xive: fix repeated words in comments 2022-09-06 11:03:04 +10:00
6xx-suspend.S
cpm2.c powerpc/sysdev: Fix comment typo 2022-07-28 16:22:14 +10:00
cpm2_pic.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
cpm2_pic.h
cpm_common.c powerpc/8xx: Don't set IMMR map anymore at boot 2020-05-26 22:22:21 +10:00
cpm_gpio.c
dart.h
dart_iommu.c powerpc/iommu: Add missing of_node_put in iommu_init_early_dart 2022-05-22 15:58:31 +10:00
dcr-low.S powerpc/dcr: Use cmplwi instead of 3-argument cmpli 2021-10-28 22:29:25 +11:00
dcr.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
ehv_pic.c powerpc: Add missing linux/{of.h,irqdomain.h} include directives 2021-06-10 13:09:16 +01:00
fsl_gtm.c powerpc/sysdev: fix incorrect use to determine if list is empty 2022-03-08 00:04:56 +11:00
fsl_lbc.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
fsl_mpic_err.c powerpc/sysdev: Add __init attribute to eligible functions 2021-12-23 22:33:12 +11:00
fsl_mpic_timer_wakeup.c
fsl_msi.c powerpc/sysdev/fsl_msi: Add missing of_node_put() 2022-09-05 17:30:18 +10:00
fsl_msi.h
fsl_pci.c powerpc/fsl_pci: Remove of_node_put() when reference escaped out 2022-09-05 17:30:29 +10:00
fsl_pci.h powerpc/fsl-pci: Fix Class Code of PCIe Root Port 2022-07-27 21:36:03 +10:00
fsl_pmc.c
fsl_rcpm.c
fsl_rio.c powerpc/44x: Fix build failure with GCC 12 (unrecognized opcode: `wrteei') 2022-07-27 21:36:06 +10:00
fsl_rio.h
fsl_rmu.c
fsl_soc.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
fsl_soc.h
grackle.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
i8259.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
indirect_pci.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
ipic.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
ipic.h
Kconfig powerpc/4xx: Remove MSI support which never worked 2021-12-09 11:52:20 +01:00
Makefile powerpc/85xx: Remove FSL_85XX_CACHE_SRAM 2022-05-22 15:58:30 +10:00
mmio_nvram.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
mpc5xxx_clocks.c powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode 2022-06-22 12:51:49 +10:00
mpic.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
mpic.h powerpc/pasemi: Add __init attribute to eligible functions 2021-12-23 22:33:14 +11:00
mpic_msgr.c powerpc/sysdev: Add missing of_node_put()s 2022-09-05 17:28:27 +10:00
mpic_msi.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
mpic_timer.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
mpic_u3msi.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
msi_bitmap.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
of_rtc.c powerpc: Remove asm/prom.h from asm/mpc52xx.h and asm/pci.h 2022-07-28 16:22:12 +10:00
pmi.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
rtc_cmos_setup.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
tsi108_dev.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
tsi108_pci.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
udbg_memcons.c powerpc/sysdev: Add __init attribute to eligible functions 2021-12-23 22:33:12 +11:00