]> git.baikalelectronics.ru Git - kernel.git/commit
s390/topology: fix topology information when calling cpu hotplug notifiers
authorSven Schnelle <svens@linux.ibm.com>
Fri, 27 Aug 2021 18:21:05 +0000 (20:21 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Tue, 7 Sep 2021 11:38:41 +0000 (13:38 +0200)
commit1f8abd8bd52b3a394f896e9a7f7a6bc5418fdfa6
tree80e72fe5fe0a406816ca467958870dd0f8dc5bec
parentf75edecd81071cf5e725ff6f40f6cf2ae7e6aec2
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>
arch/s390/include/asm/smp.h
arch/s390/kernel/smp.c
arch/s390/kernel/topology.c