linux/arch/powerpc/platforms
Laurent Dufour f6aa37c51e powerpc/pseries: unregister VPA when hot unplugging a CPU
The VPA should unregister when offlining a CPU. Otherwise there could be
a short window where 2 CPUs could share the same VPA.

This happens because the hypervisor is still keeping the VPA attached to
the vCPU even if it became offline.

Here is a potential situation:
 1. remove proc A,
 2. add proc B. If proc B gets proc A's place in cpu_present_mask, then
    it registers proc A's VPAs.
 3. If proc B is then re-added to the LP, its threads are sharing VPAs
    with proc A briefly as they come online.

As the hypervisor may check for the VPA's yield_count field oddity, it
may detect an unexpected value and kill the LPAR.

Suggested-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
Reviewed-by: Nathan Lynch <nathanl@linux.ibm.com>
[mpe: s/cpu_present_map/cpu_present_mask/ in change log]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221114160150.13554-1-ldufour@linux.ibm.com
2022-12-07 20:30:23 +11:00
..
4xx powerpc: Fix all occurences of duplicate words 2022-07-25 12:05:15 +10:00
8xx powerpc/8xx: Add missing of_node_put() in tqm8xx_setup.c 2022-09-05 17:28:25 +10:00
40x powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
44x powerpc/warp: switch to using gpiod API 2022-11-24 23:31:47 +11:00
52xx powerpc/mpc52xx_lpbfifo: fix all kernel-doc warnings 2022-11-24 23:12:18 +11:00
82xx powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
83xx powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in of_fsl_spi_probe() 2022-12-02 20:09:48 +11:00
85xx powerpc/sgy_cts1000: convert to using gpiod API and facelift 2022-11-24 23:31:48 +11:00
86xx powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
512x powerpc/512x: Add missing of_node_put() in clock-commonclk.c 2022-09-05 17:30:24 +10:00
amigaone powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
book3s powerpc/vas: fix repeated words in comments 2022-09-06 11:03:04 +10:00
cell powerpc updates for 6.1 2022-10-09 14:05:15 -07:00
chrp powerpc: remove unused chrp_event_scan() declaration 2022-09-15 22:55:45 +10:00
embedded6xx powerpc/embedded6xx/ls_uart: Add missing of_node_put() 2022-09-05 17:28:26 +10:00
maple powerpc/maple: Add missing of_node_put() in time.c 2022-09-05 17:28:25 +10:00
microwatt random: remove CONFIG_ARCH_RANDOM 2022-07-18 15:03:37 +02:00
pasemi powerpc/pasemi: Add __init/__exit annotations to module init/exit funcs 2022-11-24 23:31:47 +11:00
powermac powerpc/powermac: Fix symbol not declared warnings 2022-11-24 23:31:50 +11:00
powernv powerpc/powernv: Add opal details to the hardware description 2022-09-30 18:35:53 +10:00
ps3 powerpc/ps3: mark ps3_system_bus_type static 2022-11-30 21:46:47 +11:00
pseries powerpc/pseries: unregister VPA when hot unplugging a CPU 2022-12-07 20:30:23 +11:00
fsl_uli1575.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
Kconfig powerpc: Rename PPC_NATIVE to PPC_HASH_MMU_NATIVE 2021-12-02 22:57:22 +11:00
Kconfig.cputype powerpc/64: Option to build big-endian with ELFv2 ABI 2022-12-02 17:54:07 +11:00
Makefile powerpc: Add Microwatt platform 2021-06-21 21:15:26 +10:00