linux/drivers/s390/char
Heiko Carstens 59f60af34a s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init()
[ Upstream commit 3bcc8a1af5 ]

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: 4a39f12e75 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-02-08 09:58:07 +01:00
..
con3215.c s390/3215: use new address translation helpers 2024-03-13 09:23:47 +01:00
con3270.c s390/3270: Add missing MODULE_DESCRIPTION() macros 2024-06-28 14:52:31 +02:00
ctrlchar.c s390/ctrlchar: fix kernel doc comment 2021-09-07 13:38:42 +02:00
ctrlchar.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
defkeymap.c s390/defkeymap: fix global init to zero 2018-03-18 23:02:02 -07:00
defkeymap.map s390: add a few more SPDX identifiers 2017-12-05 07:51:09 +01:00
diag_ftp.c s390/ctlreg: rename ctl_reg.h to ctlreg.h 2023-09-19 13:26:56 +02:00
diag_ftp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fs3270.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
hmcdrv_cache.c s390: move from strlcpy with unused retval to strscpy 2022-08-30 22:00:33 +02:00
hmcdrv_cache.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hmcdrv_dev.c s390: remove unused f_version 2024-09-09 11:58:07 +02:00
hmcdrv_dev.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hmcdrv_ftp.c s390/hmcdrv_ftp: fix kernel doc comment 2021-09-07 13:38:42 +02:00
hmcdrv_ftp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hmcdrv_mod.c s390: char: add SPDX identifiers to the remaining files 2017-11-24 14:28:42 +01:00
Kconfig s390: Remove protvirt and kvm config guards for uv code 2024-07-23 16:02:33 +02:00
keyboard.c TTY/Serial driver patches for 4.19-rc1 2018-08-18 10:50:41 -07:00
keyboard.h tty: the rest, stop using tty_schedule_flip() 2021-11-25 18:35:23 +01:00
Makefile s390/ap: modularize ap bus 2024-04-09 17:29:56 +02:00
monreader.c s390/monreader: fix virtual vs physical address confusion 2023-08-30 11:03:26 +02:00
monwriter.c s390: include linux/io.h instead of asm/io.h 2023-07-03 11:19:40 +02:00
raw3270.c s390/3270: Add missing MODULE_DESCRIPTION() macros 2024-06-28 14:52:31 +02:00
raw3270.h s390/raw3270: make class3270 constant 2024-03-13 09:23:50 +01:00
sclp.c s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init() 2025-02-08 09:58:07 +01:00
sclp.h s390/sclp: replace zero-length array with flexible-array member 2023-04-13 17:36:29 +02:00
sclp_ap.c s390/sclp: Add support for SCLP AP adapter config/deconfig 2020-10-07 21:50:00 +02:00
sclp_cmd.c s390/sclp: Define commands for storage (un)assignment 2024-06-18 17:01:33 +02:00
sclp_con.c s390/consoles: improve panic notifiers reliability 2022-05-06 20:45:13 +02:00
sclp_config.c s390/smp: Switch to GENERIC_CPU_DEVICES 2024-07-10 19:50:44 +02:00
sclp_cpi_sys.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_cpi_sys.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_ctl.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
sclp_diag.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_early.c s390/wti: Introduce infrastructure for warning track interrupt 2024-08-29 22:56:34 +02:00
sclp_early_core.c s390/drivers: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
sclp_ftp.c s390/hmcdrv: use strscpy() instead of strlcpy() 2023-02-06 11:13:53 +01:00
sclp_ftp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_ocf.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_pci.c s390: Replace zero-length array with flexible-array member 2020-02-27 16:02:21 +01:00
sclp_quiesce.c s390/sclp: Remove quiesce power management support 2021-06-18 16:41:20 +02:00
sclp_rw.c TTY / Serial patches for 5.14-rc1 2021-07-05 14:08:24 -07:00
sclp_rw.h TTY / Serial patches for 5.14-rc1 2021-07-05 14:08:24 -07:00
sclp_sd.c s390/sclp: Add timeout to Store Data requests 2024-07-01 17:47:01 +02:00
sclp_sdias.c s390/sclp_sdias: fix sclp_sdias_copy() virtual vs physical address confusion 2022-02-06 23:31:29 +01:00
sclp_sdias.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_tty.c tty: make tty_operations::write()'s count size_t 2023-08-11 21:12:46 +02:00
sclp_tty.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_vt220.c s390/sclp_vt220: Convert newlines to CRLF instead of LFCR 2024-10-16 11:32:32 +02:00
tape.h s390/tape: fix virtual vs physical address confusion 2024-03-13 09:23:48 +01:00
tape_34xx.c s390/tape: fix comment typo 2022-07-28 18:05:23 +02:00
tape_3590.c s390/tape: Fix spelling mistake in function name tape_3590_erp_succeded 2021-01-27 13:00:47 +01:00
tape_3590.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tape_char.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
tape_class.c s390/tape: make tape_class constant 2024-03-13 09:23:49 +01:00
tape_class.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tape_core.c s390/tape: remove unsupported PM functions 2020-12-02 18:19:24 +01:00
tape_proc.c s390/drivers: fix proc/debugfs file permissions 2018-12-13 10:42:24 +01:00
tape_std.c s390/tape: fix timer initialization in tape_std_assign() 2021-11-08 14:17:49 +01:00
tape_std.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
uvdevice.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
vmcp.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
vmlogrdr.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
vmur.c s390/vmur: make vmur_class constant 2024-03-13 09:23:49 +01:00
vmur.h s390/vmur: generate uevent on unsolicited device end 2022-10-10 10:15:10 +02:00
zcore.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00