summaryrefslogtreecommitdiff
path: root/arch/s390/include/asm/smp.h
diff options
context:
space:
mode:
authorSven Schnelle <svens@linux.ibm.com>2021-08-27 20:21:05 +0200
committerHeiko Carstens <hca@linux.ibm.com>2021-09-07 13:38:41 +0200
commita052096bdd6809eeab809202726634d1ac975aa1 (patch)
tree80e72fe5fe0a406816ca467958870dd0f8dc5bec /arch/s390/include/asm/smp.h
parent88b604263f3d6eedae0b1c2c3bbd602d1e2e8775 (diff)
s390/topology: fix topology information when calling cpu hotplug notifiers
The cpu hotplug notifiers are called without updating the core/thread masks when a new CPU is added. This causes problems with code setting up data structures in a cpu hotplug notifier, and relying on that later in normal code. This caused a crash in the new core scheduling code (SCHED_CORE), where rq->core was set up in a notifier depending on cpu masks. To fix this, add a cpu_setup_mask which is used in update_cpu_masks() instead of the cpu_online_mask to determine whether the cpu masks should be set for a certain cpu. Also move update_cpu_masks() to update the masks before calling notify_cpu_starting() so that the notifiers are seeing the updated masks. Signed-off-by: Sven Schnelle <svens@linux.ibm.com> Cc: <stable@vger.kernel.org> [hca@linux.ibm.com: get rid of cpu_online_mask handling] Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/smp.h')
-rw-r--r--arch/s390/include/asm/smp.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/include/asm/smp.h b/arch/s390/include/asm/smp.h
index e317fd4866c1..f16f4d054ae2 100644
--- a/arch/s390/include/asm/smp.h
+++ b/arch/s390/include/asm/smp.h
@@ -18,6 +18,7 @@ extern struct mutex smp_cpu_state_mutex;
extern unsigned int smp_cpu_mt_shift;
extern unsigned int smp_cpu_mtid;
extern __vector128 __initdata boot_cpu_vector_save_area[__NUM_VXRS];
+extern cpumask_t cpu_setup_mask;
extern int __cpu_up(unsigned int cpu, struct task_struct *tidle);