[GIT PULL] s390 patches for the 7.3 merge window

From: Vasily Gorbik

Date: Sun Aug 23 2026 - 13:05:26 EST


Hello Linus,

Please pull s390 changes for 7.3.

The s390 cpuidle driver series adds a new driver under drivers/cpuidle/
and the corresponding MAINTAINERS entry. The driver was reviewed by
Christian Loehle, and the whole series was acked by cpuidle maintainer
Rafael J. Wysocki:

https://lore.kernel.org/all/20260618-idledriver-v3-0-684061eecbcb@xxxxxxxxxxxxx/

The series also removes now unused generic arch_needs_cpu() hook:

include/linux/tick.h | 3 -
kernel/time/tick-sched.c | 7 +-

which was reviewed by Thomas Gleixner:
https://lore.kernel.org/all/87v7br3fs7.ffs@fw13/

Thank you,
Vasily

The following changes since commit 8cdeaa50eae8dad34885515f62559ee83e7e8dda:

Linux 7.2-rc2 (2026-07-05 14:44:06 -1000)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-7.3-1

for you to fetch changes up to 101782f8945a125044347312d74d488c05741c4a:

s390/percpu: Fix MVIY_PERCPU() with older binutils (2026-08-13 16:56:45 +0200)

----------------------------------------------------------------
s390 updates for 7.3 merge window

- Add a cpuidle driver with polling and enabled wait states using the
existing CPU idle infrastructure and idle governor to improve latency
for frequent sleep/wakeup cycles. Remove the obsolete tick delay
heuristic and generic arch_needs_cpu() hook. Add the corresponding
driver entry to MAINTAINERS

- Add kCFI support using the generic support provided by Clang

- Enable Clang CONTEXT_ANALYSIS for various architecture code and for
char, PCI, CIO and virtio drivers. Add required lock annotations,
exclude unsupported mm helpers and remove conditional PCI locking

- Fix secure storage access exception handling and reintroduce
DCACHE_WORD_ACCESS previously removed as a workaround

- Fix cpum_cf perf crashes when CPUs are brought online while per-task
events are active. Allocate and remove per-CPU counter data from CPU
hotplug callbacks

- Fix a deadlock when an s390dbf debug area is unregistered while one
of its debugfs files is being written to

- Fix MVIY_PERCPU() with binutils older than 2.39, where an assembler
macro silently omitted an instruction needed to repair interrupted
operations after CPU migration

- Remove/replace cond_resched() calls which are no-ops with the supported
s390 preemption models

- Fix AP queue depth and maximum message length decoding according to
the architecture. Current hardware is not affected, but future hardware
could report values which were handled incorrectly

- Reflect the configured CPU state in cpu_enabled_mask so deconfigured
CPUs are not presented as available for onlining

- Restore the vDSO GNU_EH_FRAME program header which was lost when the
build switched to direct linker invocation, and mark it read-only

- Add SCLP action qualifiers used by Spyre for card initialization,
recoverable error and telemetry reporting

- Move KMSAN interrupt flag helpers out of line to fix
-Wstatic-in-inline build warnings

- Use level-specific page table entry accessors for hugetlb entries and
ptep_get() when accessing crashed kernel memory in kdump

- Make forced AP bus rescans killable so that a user process blocked
behind an ongoing scan can still be terminated with SIGKILL

- Rework pkey ioctl error paths to remove duplicated cleanup code and
avoid freeing error pointers

- Allow the protected guest SWIOTLB buffer to be allocated outside the
first 2GB. Also enable dynamic SWIOTLB growth and the coherent atomic
pool fallback to improve I/O behavior when the initial pool is exhausted

- Add program check statistics and spinlock contention tracepoints.
Increase the lockdep chain capacity to keep lockdep enabled for complex
code paths such as btrfs

- Simplify IPL, trap and syscall code and remove the obsolete unistd_32.h
generation entry

----------------------------------------------------------------
Alexander Gordeev (1):
s390/maccess: Use proper PTE accessors for copying old memory

Christian Borntraeger (1):
s390/configs: Increase CONFIG_LOCKDEP_CHAINS_BITS

Ciunas Bennett (1):
s390/spinlock: Add contention tracepoints to lock slowpath

Finn Callies (2):
s390/ap: Fix queue depth field length
s390/ap: Fix MAPML computation

Gerald Schaefer (1):
s390/mm: Use set_pmd() / set_pud() for hugetlb pagetable entries

Harald Freudenberger (2):
s390/ap: Use mutex_lock_killable() in ap_bus_force_rescan()
s390/pkey: Rework ioctl functions error paths

Heiko Carstens (29):
KVM: s390: pv: Use VM_SPARSE area for guest variable storage area
s390/mm: Add missing mm check to do_secure_storage_access()
s390/mm: Use lock_mm_and_find_vma() in do_secure_storage_access()
s390/mm: Fix handling of vmalloc area in do_secure_storage_access()
s390/mm: Remove folio handling for kernel faults in do_secure_storage_access()
s390/mm: Use handle_fault_error() in do_secure_storage_access()
s390/mm: Use goto statement in do_secure_storage_access()
s390: Add support for DCACHE_WORD_ACCESS (again)
s390/tools: Pass symbol name to do_relocs()
s390/tools/relocs: Ignore __kcfi_typeid_ relocations
s390: Add ftrace_stub_graph
s390/diag: Generate CFI type information for assembly functions
s390/bpf: Add kCFI support
s390/Kconfig: Select ARCH_SUPPORTS_CFI
KVM: s390: Remove cond_resched() calls
s390: Remove cond_resched() calls
s390/cio: Remove cond_resched() calls
s390/con3215: Add __must_hold() attribute to raw3215_make_room()
s390/char: Enable CONTEXT_ANALYSIS
s390/pci: Rework __zpci_event_error() to remove conditional locking
s390/pci: Rework __zpci_event_availability() to remove conditional locking
s390/pci: Enable CONTEXT_ANALYSIS
s390/vfio_ccw: Add __must_hold() attribute to vfio_ccw_sch_quiesce()
s390/cio: Enable CONTEXT_ANALYSIS
s390/virtio: Enable CONTEXT_ANALYSIS
s390/sysinfo: Add context analysis attributes
s390/mm: Add __context_unsafe() attribute to do_secure_storage_access()
s390/mm: Add __context_unsafe() attribute to gmap helper functions
s390: Enable CONTEXT_ANALYSIS for various directories

Ilya Leoshkevich (1):
s390/irqflags: Add out-of-line definitions of arch_local_irq_*() for KMSAN

Jaehoon Kim (2):
s390/pv: Enable SWIOTLB_ANY for s390 PV
s390: Select SWIOTLB_DYNAMIC and DMA_COHERENT_POOL

Jens Remus (2):
s390/vdso: Pass --eh-frame-hdr to the linker
s390/vdso: Use symbolic constants for the PHDR permission flags

Karl Mehltretter (1):
s390/percpu: Fix MVIY_PERCPU() with older binutils

Mete Durlu (8):
s390/tick: Remove CIF_NOHZ_DELAY flag
tick: Remove arch_needs_cpu
s390: Enable TIF_POLLING_NRFLAG
s390/idle: Introduce cpuidle for s390
s390/configs: Enable cpuidle driver on s390
s390/ipl: Use ARRAY_SIZE macro
s390/ipl: Improve readability
s390/smp: Reflect (de)configured CPUs to cpu_enabled_mask

Niklas Schnelle (1):
s390/sclp: Allow SCLP Action Qualifiers for Spyre card status reporting

Peter Oberparleiter (1):
s390/debug: Fix deadlock during unregister

Peter Zijlstra (1):
s390/crypto: Replace cond_resched() with msleep(1)

Sven Schnelle (3):
s390/traps: Add exception statistics
s390/traps: Remove PIF_GUEST_FAULT
s390/syscalls: Use define instead of '1' to indicate PER trap

Thomas Huth (1):
s390/uapi: Remove obsolete unistd_32.h from Kbuild file

Thomas Richter (1):
s390/cpum_cf: Handle CPU hotplug via prepare/dead callbacks

MAINTAINERS | 8 +
arch/s390/Kconfig | 10 ++
arch/s390/appldata/Makefile | 2 +
arch/s390/configs/debug_defconfig | 4 +-
arch/s390/configs/defconfig | 2 +
arch/s390/crypto/paes_s390.c | 44 +----
arch/s390/crypto/phmac_s390.c | 25 +--
arch/s390/hypfs/Makefile | 2 +
arch/s390/include/asm/ap.h | 4 +-
arch/s390/include/asm/asm-extable.h | 4 +
arch/s390/include/asm/cfi.h | 7 +
arch/s390/include/asm/hugetlb.h | 4 +-
arch/s390/include/asm/irqflags.h | 20 ++-
arch/s390/include/asm/percpu.h | 4 +-
arch/s390/include/asm/pkey.h | 16 ++
arch/s390/include/asm/processor.h | 4 -
arch/s390/include/asm/ptrace.h | 4 +-
arch/s390/include/asm/sclp.h | 3 +
arch/s390/include/asm/thread_info.h | 1 +
arch/s390/include/asm/uv.h | 18 +-
arch/s390/include/asm/word-at-a-time.h | 22 +++
arch/s390/include/uapi/asm/Kbuild | 1 -
arch/s390/kernel/Makefile | 3 +
arch/s390/kernel/debug.c | 10 +-
arch/s390/kernel/entry.S | 9 +-
arch/s390/kernel/entry.h | 10 +-
arch/s390/kernel/idle.c | 1 -
arch/s390/kernel/ipl.c | 58 ++++---
arch/s390/kernel/irq.c | 4 -
arch/s390/kernel/irqflags.c | 28 ++++
arch/s390/kernel/mcount.S | 9 +-
arch/s390/kernel/perf_cpum_cf.c | 222 ++++++++++++++++---------
arch/s390/kernel/smp.c | 6 +-
arch/s390/kernel/syscall.c | 4 +-
arch/s390/kernel/sysinfo.c | 2 +
arch/s390/kernel/text_amode31.S | 13 +-
arch/s390/kernel/traps.c | 45 ++++-
arch/s390/kernel/uv.c | 67 +++++++-
arch/s390/kernel/vdso/Makefile | 3 +-
arch/s390/kernel/vdso/vdso.lds.S | 11 +-
arch/s390/kvm/gaccess.c | 8 +-
arch/s390/kvm/gmap.c | 4 -
arch/s390/kvm/kvm-s390.c | 1 -
arch/s390/kvm/pv.c | 17 +-
arch/s390/kvm/vsie.c | 1 -
arch/s390/lib/Makefile | 2 +
arch/s390/lib/spinlock.c | 3 +
arch/s390/mm/Makefile | 2 +
arch/s390/mm/cmm.c | 2 -
arch/s390/mm/extable.c | 18 ++
arch/s390/mm/fault.c | 36 ++--
arch/s390/mm/gmap_helpers.c | 4 +-
arch/s390/mm/hugetlbpage.c | 10 +-
arch/s390/mm/init.c | 2 +-
arch/s390/mm/maccess.c | 2 +-
arch/s390/mm/pageattr.c | 5 -
arch/s390/mm/pgalloc.c | 1 -
arch/s390/net/Makefile | 3 +
arch/s390/net/bpf_jit_comp.c | 28 +++-
arch/s390/pci/Makefile | 2 +
arch/s390/pci/pci.c | 4 +-
arch/s390/pci/pci_event.c | 205 ++++++++++++-----------
arch/s390/purgatory/Makefile | 2 +
arch/s390/tools/relocs.c | 158 +++++++++++++++++-
drivers/cpuidle/Kconfig | 5 +
drivers/cpuidle/Kconfig.s390 | 11 ++
drivers/cpuidle/Makefile | 4 +
drivers/cpuidle/cpuidle-s390.c | 115 +++++++++++++
drivers/s390/char/Makefile | 2 +
drivers/s390/char/con3215.c | 1 +
drivers/s390/char/sclp_pci.c | 3 +
drivers/s390/char/uvdevice.c | 6 +-
drivers/s390/cio/Makefile | 2 +
drivers/s390/cio/css.c | 8 -
drivers/s390/cio/vfio_ccw_drv.c | 1 +
drivers/s390/cio/vfio_ccw_private.h | 3 +-
drivers/s390/crypto/ap_bus.c | 4 +-
drivers/s390/crypto/ap_bus.h | 2 +-
drivers/s390/crypto/ap_card.c | 2 +-
drivers/s390/crypto/pkey_api.c | 290 ++++++++++++++++++---------------
drivers/s390/virtio/Makefile | 2 +
include/linux/tick.h | 3 -
kernel/time/tick-sched.c | 7 +-
83 files changed, 1159 insertions(+), 546 deletions(-)
create mode 100644 arch/s390/include/asm/cfi.h
create mode 100644 arch/s390/kernel/irqflags.c
create mode 100644 drivers/cpuidle/Kconfig.s390
create mode 100644 drivers/cpuidle/cpuidle-s390.c