]> www.infradead.org Git - users/dwmw2/linux.git/commit
s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init()
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 20 Jan 2025 10:53:42 +0000 (11:53 +0100)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Tue, 28 Jan 2025 16:38:46 +0000 (17:38 +0100)
commit3bcc8a1af581af152d43e42b53db3534018301b5
treee1567c70de5a3317260840402e5ca865469df1eb
parent7cbae7ea3de5c17b47aeb34a770446aba1eaa904
s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init()

With the switch to GENERIC_CPU_DEVICES an early call to the sclp subsystem
was added to smp_prepare_cpus(). This will usually succeed since the sclp
subsystem is implicitly initialized early enough if an sclp based console
is present.

If no such console is present the initialization happens with an
arch_initcall(); in such cases calls to the sclp subsystem will fail.
For CPU detection this means that the fallback sigp loop will be used
permanently to detect CPUs instead of the preferred READ_CPU_INFO sclp
request.

Fix this by adding an explicit early sclp_init() call via
arch_cpu_finalize_init().

Reported-by: Sheshu Ramanandan <sheshu.ramanandan@ibm.com>
Fixes: 4a39f12e753d ("s390/smp: Switch to GENERIC_CPU_DEVICES")
Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/Kconfig
arch/s390/include/asm/sclp.h
arch/s390/kernel/setup.c
drivers/s390/char/sclp.c