[PATCH v2 00/10] s390: Consistent usage of text_mutex
From: Heiko Carstens
Date: Tue Oct 27 2026 - 10:34:11 EST
v2:
- Use text mutex for all callers of s390_kernel_write(), and add lockdep
checking. [Based on a review comment from Ilya Leoshkevich, and also
Sashiko feedback]
- Note: this takes now the mutex also at places where it is technically
not necessary (e.g. ftrace init nop patching). However this is not much
of a difference to before, where the spinlock in s390_kernel_write()
was always taken instead
v1:
Other architectures serialize kernel text patching with text_mutex. s390
does not: __s390_kernel_write() relies on a private spinlock, and callers
partially depend on implicit exclusion (e.g. no kprobe can be set on a
jump label).
Make s390 consistent with other architectures:
- Patches 1-3 add text_mutex to the jump_label, ftrace and bpf text
patching paths
- Patch 4 removes the redundant spinlock from __s390_kernel_write().
CPU serialization, previously done implicitly, is now explicit via
sync_core()
Thanks,
Heiko
Heiko Carstens (10):
s390/jump_label: Serialize text patching with text_mutex
s390/ftrace: Serialize text patching with text_mutex
s390/bpf: Serialize text patching with text_mutex
s390/runtime-const: Serialize text patching with text_mutex
s390/module: Serialize text patching with text_mutex
s390/stackprotector: Serialize text patching with text_mutex
s390/nospec-branch: Serialize text patching with text_mutex
s390/alternative: Serialize text patching with text_mutex
s390/uaccess: Move s390_kernel_write() to asm/text-patching.h
s390/maccess: Remove spinlock from __s390_kernel_write()
arch/s390/include/asm/runtime-const.h | 4 +++-
arch/s390/include/asm/text-patching.h | 14 ++++++++++++++
arch/s390/include/asm/uaccess.h | 9 ---------
arch/s390/kernel/alternative.c | 6 +++++-
arch/s390/kernel/ftrace.c | 11 +++++++++++
arch/s390/kernel/jump_label.c | 3 ++-
arch/s390/kernel/kprobes.c | 4 +++-
arch/s390/kernel/module.c | 2 ++
arch/s390/kernel/nospec-branch.c | 4 ++++
arch/s390/kernel/stackprotector.c | 6 +++++-
arch/s390/mm/maccess.c | 9 ++++-----
arch/s390/net/bpf_jit_comp.c | 21 +++++++++++++++++----
12 files changed, 70 insertions(+), 23 deletions(-)
--
2.53.0