linux/drivers/s390/char
Peter Oberparleiter 430fa71027 s390/sclp: Fix SCCB present check
Tracing code called by the SCLP interrupt handler contains early exits
if the SCCB address associated with an interrupt is NULL. This check is
performed after physical to virtual address translation.

If the kernel identity mapping does not start at address zero, the
resulting virtual address is never zero, so that the NULL checks won't
work. Subsequently this may result in incorrect accesses to the first
page of the identity mapping.

Fix this by introducing a function that handles the NULL case before
address translation.

Fixes: ada1da31ce ("s390/sclp: sort out physical vs virtual pointers usage")
Cc: stable@vger.kernel.org
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
History 2025-08-20 16:37:27 +02:00
..
con3215.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
con3270.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +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: Remove optional third argument of strscpy() if possible 2025-04-17 15:16:10 +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: Convert MACHINE_IS_[LPAR|VM|KVM], etc, machine_is_[lpar|vm|kvm]() 2025-03-04 17:18:07 +01: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 s390/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02: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: Convert MACHINE_IS_[LPAR|VM|KVM], etc, machine_is_[lpar|vm|kvm]() 2025-03-04 17:18:07 +01:00
monwriter.c s390: Convert MACHINE_IS_[LPAR|VM|KVM], etc, machine_is_[lpar|vm|kvm]() 2025-03-04 17:18:07 +01:00
raw3270.c s390/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02:00
raw3270.h s390/raw3270: make class3270 constant 2024-03-13 09:23:50 +01:00
sclp.c s390/sclp: Fix SCCB present check 2025-08-20 16:37:27 +02:00
sclp.h s390: Use inline qualifier for all EX_TABLE and ALTERNATIVE inline assemblies 2025-03-18 17:13:51 +01: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/drivers: Remove unnecessary include <linux/export.h> 2025-06-17 18:18:03 +02:00
sclp_con.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
sclp_config.c sysfs: treewide: switch back to bin_attribute::read()/write() 2025-06-17 10:44:13 +02:00
sclp_cpi_sys.c s390/sclp_cpi: Switch over to sysfs_emit() 2024-10-25 16:03:26 +02: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/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02:00
sclp_early_core.c s390/kvm: Convert MACHINE_HAS_ESOP to machine_has_esop() 2025-03-04 17:18:06 +01: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 s390/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02:00
sclp_pci.c s390/pci: Report PCI error recovery results via SCLP 2024-12-16 16:14:26 +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 updates for 6.17 merge window 2025-07-29 20:17:08 -07: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 s390/tty: Fix a potential memory leak bug 2025-03-04 17:18:08 +01: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 treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
tape.h s390/tape: fix virtual vs physical address confusion 2024-03-13 09:23:48 +01:00
tape_34xx.c s390/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02:00
tape_3590.c s390/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02: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/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02: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/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02:00
tape_proc.c s390/drivers: fix proc/debugfs file permissions 2018-12-13 10:42:24 +01:00
tape_std.c s390/drivers: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02:00
tape_std.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
uvdevice.c s390/uvdevice: Fix and slightly improve kernel-doc comment 2024-11-07 10:37:00 +01:00
vmcp.c s390/drivers: Remove unnecessary include <linux/export.h> 2025-06-17 18:18:03 +02:00
vmlogrdr.c treewide: fix typo "previlege" 2025-05-11 17:54:10 -07:00
vmur.c s390: Convert MACHINE_IS_[LPAR|VM|KVM], etc, machine_is_[lpar|vm|kvm]() 2025-03-04 17:18:07 +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