Hi Linus, please pull more s390 updates for the 6.10 merge window. Please note a merge conflict in scripts/Makefile.vdsoinst with commit 1c369b6c9492 ("kbuild: simplify generic vdso installation code"). The resolution seems to be straightforward as resolved in next-20240521 commit 1c6d596096c4 ("Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git"). Thanks, Alexander The following changes since commit d65e1a0f305ba3e7aabf6261a37bb871790d9f93: Merge tag 's390-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux (2024-05-13 08:33:52 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.10-2 for you to fetch changes up to c1248638f8c35b74400efa7e02e78ecda23373f9: s390/zcrypt: Use kvcalloc() instead of kvmalloc_array() (2024-05-17 10:43:43 +0200) ---------------------------------------------------------------- more s390 updates for 6.10 merge window - Switch read and write software bits for PUDs - Add missing hardware bits for PUDs and PMDs - Generate unwind information for C modules to fix GDB unwind error for vDSO functions - Create .build-id links for unstripped vDSO files to enable vDSO debugging with symbols - Use standard stack frame layout for vDSO generated stack frames to manually walk stack frames without DWARF information - Rework perf_callchain_user() and arch_stack_walk_user() functions to reduce code duplication - Skip first stack frame when walking user stack - Add basic checks to identify invalid instruction pointers when walking stack frames - Introduce and use struct stack_frame_vdso_wrapper within vDSO user wrapper code to automatically generate an asm-offset define. Also use STACK_FRAME_USER_OVERHEAD instead of STACK_FRAME_OVERHEAD to document that the code works with user space stack - Clear the backchain of the extra stack frame added by the vDSO user wrapper code. This allows the user stack walker to detect and skip the non-standard stack frame. Without this an incorrect instruction pointer would be added to stack traces. - Rewrite psw_idle() function in C to ease maintenance and further enhancements - Remove get_vtimer() function and use get_cpu_timer() instead - Mark psw variable in __load_psw_mask() as __unitialized to avoid superfluous clearing of PSW - Remove obsolete and superfluous comment about removed TIF_FPU flag - Replace memzero_explicit() and kfree() with kfree_sensitive() to fix warnings reported by Coccinelle - Wipe sensitive data and all copies of protected- or secure-keys from stack when an IOCTL fails - Both do_airq_interrupt() and do_io_interrupt() functions set CIF_NOHZ_DELAY flag. Move it in do_io_irq() to simplify the code - Provide iucv_alloc_device() and iucv_release_device() helpers, which can be used to deduplicate more or less identical IUCV device allocation and release code in four different drivers - Make use of iucv_alloc_device() and iucv_release_device() helpers to get rid of quite some code and also remove a cast to an incompatible function (clang W=1) - There is no user of iucv_root outside of the core IUCV code left. Therefore remove the EXPORT_SYMBOL - __apply_alternatives() contains a runtime check which verifies that the size of the to be patched code area is even. Convert this to a compile time check - Increase size of buffers for sending z/VM CP DIAGNOSE X'008' commands from 128 to 240 - Do not accept z/VM CP DIAGNOSE X'008' commands longer than maximally allowed - Use correct defines IPL_BP_NVME_LEN and IPL_BP0_NVME_LEN instead of IPL_BP_FCP_LEN and IPL_BP0_FCP_LEN ones to initialize NVMe reIPL block on 'scp_data' sysfs attribute update - Initialize the correct fields of the NVMe dump block, which were confused with FCP fields - Refactor macros for 'scp_data' (re-)IPL sysfs attribute to reduce code duplication - Introduce 'scp_data' sysfs attribute for dump IPL to allow tools such as dumpconf passing additional kernel command line parameters to a stand-alone dumper - Rework the CPACF query functions to use the correct RRE or RRF instruction formats and set instruction register fields correctly - Instead of calling BUG() at runtime force a link error during compile when a unsupported opcode is used with __cpacf_query() or __cpacf_check_opcode() functions - Fix a crash in ap_parse_bitmap_str() function on /sys/bus/ap/apmask or /sys/bus/ap/aqmask sysfs file update with a relative mask value - Fix "bindings complete" udev event which should be sent once all AP devices have been bound to device drivers and again when unbind/bind actions take place and all AP devices are bound again - Facility list alt_stfle_fac_list is nowhere used in the decompressor, therefore remove it there - Remove custom kprobes insn slot allocator in favour of the standard module_alloc() one, since kernel image and module areas are located within 4GB - Use kvcalloc() instead of kvmalloc_array() in zcrypt driver to avoid calling memset() with a large byte count and get rid of the sparse warning as result ---------------------------------------------------------------- Alexander Egorenkov (6): s390/ipl: Fix size of vmcmd buffers for sending z/VM CP diag X'008' cmds s390/ipl: Do not accept z/VM CP diag X'008' cmds longer than max length s390/ipl: Fix incorrect initialization of len fields in nvme reipl block s390/ipl: Fix incorrect initialization of nvme dump block s390/ipl: Introduce macros for (re)ipl sysfs attribute 'scp_data' s390/ipl: Introduce sysfs attribute 'scp_data' for dump ipl Claudio Imbrenda (2): s390/pgtable: Switch read and write softbits for puds s390/pgtable: Add missing hardware bits for puds, pmds Harald Freudenberger (4): s390/cpacf: Split and rework cpacf query functions s390/cpacf: Make use of invalid opcode produce a link error s390/ap: Fix crash in AP internal function modify_bitmap() s390/ap: Fix bind complete udev event sent after each AP bus scan Heiko Carstens (15): s390/vdso: Use standard stack frame layout s390/stacktrace: Merge perf_callchain_user() and arch_stack_walk_user() s390/stacktrace: Skip first user stack frame s390/stacktrace: Improve detection of invalid instruction pointers s390/vdso: Introduce and use struct stack_frame_vdso_wrapper s390/stackstrace: Detect vdso stack frames s390/iucv: Provide iucv_alloc_device() / iucv_release_device() s390/vmlogrdr: Make use of iucv_alloc_device() s390/netiucv: Make use of iucv_alloc_device() s390/smsgiucv_app: Make use of iucv_alloc_device() tty: hvc-iucv: Make use of iucv_alloc_device() s390/iucv: Unexport iucv_root s390/alternatives: Convert runtime sanity check into compile time check s390/kprobes: Remove custom insn slot allocator s390/zcrypt: Use kvcalloc() instead of kvmalloc_array() Holger Dengler (3): s390/pkey: Wipe sensitive data on failure s390/pkey: Wipe copies of clear-key structures on failure s390/pkey: Wipe copies of protected- and secure-keys Jens Remus (2): s390/vdso: Generate unwind information for C modules s390/vdso: Create .build-id links for unstripped vdso files Jules Irenge (1): s390/pkey: Use kfree_sensitive() to fix Coccinelle warnings Sven Schnelle (5): s390/idle: Rewrite psw_idle() in C s390/vtime: Use get_cpu_timer() s390: Mark psw in __load_psw_mask() as __unitialized s390/irq: Set CIF_NOHZ_DELAY in do_io_irq() s390/boot: Remove alt_stfle_fac_list from decompressor Thomas Huth (1): s390/fpu: Remove comment about TIF_FPU arch/s390/boot/startup.c | 1 - arch/s390/include/asm/alternative-asm.h | 1 + arch/s390/include/asm/alternative.h | 1 + arch/s390/include/asm/cpacf.h | 109 ++++++++-- arch/s390/include/asm/pgtable.h | 12 +- arch/s390/include/asm/processor.h | 17 +- arch/s390/include/asm/stacktrace.h | 12 ++ arch/s390/kernel/Makefile | 1 - arch/s390/kernel/alternative.c | 7 - arch/s390/kernel/asm-offsets.c | 9 +- arch/s390/kernel/entry.S | 23 -- arch/s390/kernel/idle.c | 10 +- arch/s390/kernel/ipl.c | 319 ++++++++++++---------------- arch/s390/kernel/irq.c | 1 + arch/s390/kernel/kprobes.c | 67 +----- arch/s390/kernel/kprobes.h | 9 - arch/s390/kernel/kprobes_insn_page.S | 22 -- arch/s390/kernel/perf_event.c | 34 +-- arch/s390/kernel/process.c | 5 - arch/s390/kernel/setup.c | 2 +- arch/s390/kernel/stacktrace.c | 89 ++++++-- arch/s390/kernel/vdso.c | 13 +- arch/s390/kernel/vdso32/Makefile | 4 +- arch/s390/kernel/vdso64/Makefile | 4 +- arch/s390/kernel/vdso64/vdso_user_wrapper.S | 19 +- arch/s390/kernel/vtime.c | 10 +- drivers/s390/char/vmlogrdr.c | 20 +- drivers/s390/cio/airq.c | 1 - drivers/s390/cio/cio.c | 1 - drivers/s390/crypto/ap_bus.c | 10 +- drivers/s390/crypto/pkey_api.c | 109 +++++----- drivers/s390/crypto/zcrypt_api.c | 9 +- drivers/s390/crypto/zcrypt_ccamisc.c | 12 +- drivers/s390/crypto/zcrypt_ep11misc.c | 6 +- drivers/s390/net/netiucv.c | 20 +- drivers/s390/net/smsgiucv_app.c | 21 +- drivers/tty/hvc/hvc_iucv.c | 15 +- include/net/iucv/iucv.h | 7 +- net/iucv/iucv.c | 38 +++- scripts/Makefile.vdsoinst | 2 +- 40 files changed, 517 insertions(+), 555 deletions(-) delete mode 100644 arch/s390/kernel/kprobes.h delete mode 100644 arch/s390/kernel/kprobes_insn_page.S