1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/arch/powerpc/platforms/pseries
Nicholas Piggin 21a741eb75 powerpc/pseries: Fix scv instruction crash with kexec
kexec on pseries disables AIL (reloc_on_exc), required for scv
instruction support, before other CPUs have been shut down. This means
they can execute scv instructions after AIL is disabled, which causes an
interrupt at an unexpected entry location that crashes the kernel.

Change the kexec sequence to disable AIL after other CPUs have been
brought down.

As a refresher, the real-mode scv interrupt vector is 0x17000, and the
fixed-location head code probably couldn't easily deal with implementing
such high addresses so it was just decided not to support that interrupt
at all.

Fixes: 7fa95f9ada ("powerpc/64s: system call support for scv/rfscv instructions")
Cc: stable@vger.kernel.org # v5.9+
Reported-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Closes: https://lore.kernel.org/3b4b2943-49ad-4619-b195-bc416f1d1409@linux.ibm.com
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Tested-by: Gautam Menghani <gautam@linux.ibm.com>
Tested-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Link: https://msgid.link/20240625134047.298759-1-npiggin@gmail.com
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2024-06-28 22:05:44 +10:00
..
cc_platform.c powerpc/pseries/svm: Add a powerpc version of cc_platform_has() 2021-10-04 11:46:33 +02:00
cmm.c mm: Convert all PageMovable users to movable_operations 2022-08-02 12:34:03 -04:00
dlpar.c powerpc, workqueue: Use alloc_ordered_workqueue() to create ordered workqueues 2023-05-08 13:52:27 -10:00
dtl.c powerpc/pseries: Fix CONFIG_DTL=n build 2022-10-13 22:30:07 +11:00
eeh_pseries.c powerpc/rtas_pci: rename and properly expose config access APIs 2023-11-28 21:49:45 +11:00
event_sources.c powerpc/pseries: Add __init attribute to eligible functions 2021-12-23 22:33:15 +11:00
firmware.c powerpc/pseries: Add FW_FEATURE_PLPKS feature flag 2023-04-20 13:21:46 +10:00
hotplug-cpu.c powerpc/pseries: Honour current SMT state when DLPAR onlining CPUs 2023-08-02 22:49:46 +10:00
hotplug-memory.c powerpc/pseries/memhp: Log more error conditions in add path 2023-12-01 21:15:34 +11:00
hvCall.S powerpc/pseries: Remove unused r0 in the hcall tracing code 2023-09-30 22:52:18 +10:00
hvCall_inst.c powerpc/pseries: Make symbol '__pcpu_scope_hcall_stats' static 2021-04-14 23:04:17 +10:00
hvconsole.c tty: hvc: convert to u8 and size_t 2023-12-08 12:02:37 +01:00
hvcserver.c powerpc: move from strlcpy with unused retval to strscpy 2022-08-26 11:02:20 +10:00
ibmebus.c powerpc: ibmebus: make ibmebus_bus_type const 2024-02-15 00:14:06 +11:00
io_event_irq.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
iommu.c powerpc/pseries/iommu: LPAR panics during boot up with a frozen PE 2024-04-23 14:34:00 +10:00
Kconfig powerpc/pseries: PLPKS SED Opal keystore support 2023-10-17 09:10:06 -06:00
kexec.c powerpc/pseries: Fix scv instruction crash with kexec 2024-06-28 22:05:44 +10:00
lpar.c powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp 2024-04-29 23:51:15 +10:00
lparcfg.c powerpc/pseries/lparcfg: drop error message from guest name lookup 2024-05-30 22:57:26 +10:00
Makefile powerpc/Makefile: Remove bits related to the previous use of -mcmodel=large 2024-05-07 23:48:45 +10:00
mobility.c powerpc: Remove now superfluous sentinel element from ctl_table arrays 2023-10-10 15:22:02 -07:00
msi.c powerpc: Enable support for 32 bit MSI-X vectors 2024-03-03 22:18:45 +11:00
nvram.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
of_helpers.c powerpc/pseries: Fix of_read_drc_info_cell() to point at next record 2020-03-25 12:06:43 +11:00
of_helpers.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
papr-sysparm.c powerpc/pseries/papr-sysparm: Expose character device to user space 2023-12-13 21:38:21 +11:00
papr-vpd.c powerpc/pseries: Add papr-vpd character driver for VPD retrieval 2023-12-13 21:38:21 +11:00
papr_platform_attributes.c powerpc/pseries: Fix potential memleak in papr_get_attr() 2024-03-03 22:20:28 +11:00
papr_scm.c powerpc/papr_scm: Move duplicate definitions to common header files 2024-04-25 12:37:12 -07:00
pci.c powerpc/pseries/pci: Code cleanup 2024-05-07 23:47:12 +10:00
pci_dlpar.c powerpc/pseries/iommu: DLPAR add doesn't completely initialize pci_controller 2024-02-19 16:16:34 +11:00
plpks-secvar.c powerpc/pseries: Fix endianness issue when parsing PLPKS secvar flags 2023-02-16 21:16:22 +11:00
plpks.c powerpc/pseries: make max polling consistent for longer H_CALLs 2024-04-22 23:37:51 +10:00
plpks_sed_ops.c powerpc/pseries: PLPKS SED Opal keystore support 2023-10-17 09:10:06 -06:00
pmem.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
power.c powerpc: declare unmodified attribute_group usages const 2022-03-08 22:15:32 +11:00
pseries.h powerpc/pseries: Fix scv instruction crash with kexec 2024-06-28 22:05:44 +10:00
pseries_energy.c powerpc/pseries: move to use bus_get_dev_root() 2023-03-17 15:29:38 +01:00
ras.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
reconfig.c powerpc/pseries: block untrusted device tree changes when locked down 2022-09-28 19:22:14 +10:00
rng.c powerpc/pseries: wire up rng during setup_arch() 2022-06-18 10:19:10 +10:00
rtas-fadump.c powerpc/fadump: setup additional parameters for dump capture kernel 2024-05-10 16:36:10 +10:00
rtas-fadump.h powerpc/fadump: setup additional parameters for dump capture kernel 2024-05-10 16:36:10 +10:00
rtas-work-area.c powerpc/pseries/rtas-work-area: Fix rtas_work_area_reserve_arena() kernel-doc 2023-11-07 13:13:44 +11:00
setup.c powerpc/pseries: Fix scv instruction crash with kexec 2024-06-28 22:05:44 +10:00
smp.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
suspend.c powerpc/rtas: Move post_mobility_fixup() declaration to pseries 2023-11-21 12:06:50 +11:00
svm.c swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction 2022-04-18 07:21:12 +02:00
vas-sysfs.c powerpc/pseries/vas: Call misc_deregister if sysfs init fails 2022-05-22 15:58:31 +10:00
vas.c powerpc: Fix typos 2024-05-08 00:21:30 +10:00
vas.h powerpc/pseries/vas: Migration suspend waits for no in-progress open windows 2023-12-13 22:01:47 +11:00
vio.c The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
vphn.c powerpc/pseries: Move VPHN constants into vphn.h 2023-08-24 22:33:16 +10:00