Hello Linus, please pull the second round of s390 fixes and features for 5.14. Thank you, Vasily The following changes since commit 2bb919b62f6e5959552a90a399d09d683afa3d1d: Merge tag 's390-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux (2021-07-04 12:17:38 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-5.14-2 for you to fetch changes up to 6a942f5780545ebd11aca8b3ac4b163397962322: s390: preempt: Fix preempt_count initialization (2021-07-08 22:12:18 +0200) ---------------------------------------------------------------- s390 updates for the 5.14 merge window #2 - Fix preempt_count initialization. - Rework call_on_stack() macro to add proper type handling and avoid possible register corruption. - More error prone "register asm" removal and fixes. - Fix syscall restarting when multiple signals are coming in. This adds minimalistic trampolines to vdso so we can return from signal without using the stack which requires pgm check handler hacks when NX is enabled. - Remove HAVE_IRQ_EXIT_ON_IRQ_STACK since this is no longer true after switch to generic entry. - Fix protected virtualization secure storage access exception handling. - Make machine check C handler always enter with DAT enabled and move register validation to C code. - Fix tinyconfig boot problem by avoiding MONITOR CALL without CONFIG_BUG. - Increase asm symbols alignment to 16 to make it consistent with compilers. - Enable concurrent access to the CPU Measurement Counter Facility. - Add support for dynamic AP bus size limit and rework ap_dqap to deal with messages greater than recv buffer. ---------------------------------------------------------------- Alexander Egorenkov (1): s390/boot: replace magic string check with a bootdata flag Alexander Gordeev (6): s390/entry.S: factor out SIEEXIT macro s390/mcck: optimize user mode check in case of !CONFIG_KVM s390/mcck: always enter C handler with DAT enabled s390/mcck: move storage error checks to assembler s390/mcck: keep machine check interruption codes sorted s390/mcck: move register validation to C code Harald Freudenberger (3): s390/AP: support new dynamic AP bus size limit s390/ap: Rework ap_dqap to deal with messages greater than recv buffer s390/ap: get rid of register asm in ap_dqap() Heiko Carstens (16): s390/lib,uaccess: fix copy_in_user_mvcos() inline asm clobber list s390/lib,string: fix strcat() inline asm constraint modifier s390/ap: get rid of register asm s390/irq: simplify do_softirq_own_stack() s390/irq: inline do_softirq_own_stack() s390/irq: simplify on_async_stack() s390: introduce proper type handling call_on_stack() macro s390/mm: use call_on_stack() macro s390/irq: use call_on_stack() macro s390/kexec: use call_on_stack() macro s390/smp: use call_on_stack() macro s390/lib: use call_on_stack() macro s390/softirq: use call_on_stack() macro s390: remove old CALL_ON_STACK() macro s390: add type checking to CALL_ON_STACK_NORETURN() macro s390: rename CALL_ON_STACK_NORETURN() to call_on_stack_noreturn() Ilya Leoshkevich (1): s390/traps: do not test MONITOR CALL without CONFIG_BUG Janosch Frank (1): s390: mm: Fix secure storage access exception handling Kefeng Wang (1): s390/kprobes: use is_kernel() helper Sven Schnelle (9): s390/irq: remove HAVE_IRQ_EXIT_ON_IRQ_STACK s390/vdso: always enable vdso s390/vdso64: add sigreturn,rt_sigreturn and restart_syscall s390/vdso: rename VDSO64_LBASE to VDSO_LBASE s390/vdso: add minimal compat vdso s390/signal: switch to using vdso for sigreturn and syscall restart s390/signal: remove sigreturn on stack s390: move restart of execve() syscall s390: rename PIF_SYSCALL_RESTART to PIF_EXECVE_PGSTE_RESTART Thomas Richter (1): s390/cpumf: Allow concurrent access for CPU Measurement Counter Facility Valentin Schneider (1): s390: preempt: Fix preempt_count initialization Vasily Gorbik (1): s390/linkage: increase asm symbols alignment to 16 arch/s390/Kconfig | 2 +- arch/s390/Makefile | 13 + arch/s390/boot/startup.c | 1 + arch/s390/boot/uv.c | 1 + arch/s390/include/asm/ap.h | 220 +++-- arch/s390/include/asm/cpu_mcf.h | 36 +- arch/s390/include/asm/ctl_reg.h | 2 - arch/s390/include/asm/elf.h | 15 +- arch/s390/include/asm/entry-common.h | 1 - arch/s390/include/asm/linkage.h | 2 +- arch/s390/include/asm/nmi.h | 6 +- arch/s390/include/asm/preempt.h | 16 +- arch/s390/include/asm/ptrace.h | 24 +- arch/s390/include/asm/setup.h | 2 + arch/s390/include/asm/softirq_stack.h | 13 + arch/s390/include/asm/stacktrace.h | 116 ++- arch/s390/include/asm/uv.h | 8 +- arch/s390/include/asm/vdso.h | 25 +- arch/s390/include/asm/vdso/gettimeofday.h | 1 - arch/s390/kernel/Makefile | 2 +- arch/s390/kernel/asm-offsets.c | 6 - arch/s390/kernel/compat_signal.c | 13 +- arch/s390/kernel/early.c | 4 +- arch/s390/kernel/entry.S | 141 ++-- arch/s390/kernel/irq.c | 28 +- arch/s390/kernel/kprobes.c | 9 +- arch/s390/kernel/machine_kexec.c | 3 +- arch/s390/kernel/nmi.c | 129 +-- arch/s390/kernel/perf_cpum_cf.c | 1026 +++++++++++++++++++++++- arch/s390/kernel/perf_cpum_cf_common.c | 27 +- arch/s390/kernel/perf_cpum_cf_diag.c | 1148 --------------------------- arch/s390/kernel/process.c | 6 + arch/s390/kernel/setup.c | 3 +- arch/s390/kernel/signal.c | 39 +- arch/s390/kernel/smp.c | 15 +- arch/s390/kernel/syscall.c | 34 +- arch/s390/kernel/traps.c | 14 +- arch/s390/kernel/uv.c | 10 + arch/s390/kernel/vdso.c | 63 +- arch/s390/kernel/vdso32/.gitignore | 2 + arch/s390/kernel/vdso32/Makefile | 75 ++ arch/s390/kernel/vdso32/gen_vdso_offsets.sh | 15 + arch/s390/kernel/vdso32/note.S | 13 + arch/s390/kernel/vdso32/vdso32.lds.S | 141 ++++ arch/s390/kernel/vdso32/vdso32_wrapper.S | 15 + arch/s390/kernel/vdso32/vdso_user_wrapper.S | 21 + arch/s390/kernel/vdso64/Makefile | 8 + arch/s390/kernel/vdso64/gen_vdso_offsets.sh | 15 + arch/s390/kernel/vdso64/vdso64.lds.S | 5 +- arch/s390/kernel/vdso64/vdso_user_wrapper.S | 17 + arch/s390/lib/string.c | 2 +- arch/s390/lib/test_unwind.c | 5 +- arch/s390/lib/uaccess.c | 2 +- arch/s390/mm/fault.c | 49 +- arch/s390/mm/maccess.c | 13 +- drivers/s390/crypto/ap_bus.c | 50 +- drivers/s390/crypto/ap_bus.h | 11 +- drivers/s390/crypto/ap_card.c | 16 +- drivers/s390/crypto/ap_queue.c | 28 +- drivers/s390/crypto/zcrypt_api.c | 6 + drivers/s390/crypto/zcrypt_cex4.c | 9 +- drivers/s390/crypto/zcrypt_msgtype50.c | 26 +- drivers/s390/crypto/zcrypt_msgtype6.c | 54 +- drivers/s390/crypto/zcrypt_msgtype6.h | 2 - drivers/s390/crypto/zcrypt_queue.c | 6 +- include/linux/cpuhotplug.h | 1 - 66 files changed, 2110 insertions(+), 1721 deletions(-) create mode 100644 arch/s390/include/asm/softirq_stack.h delete mode 100644 arch/s390/kernel/perf_cpum_cf_diag.c create mode 100644 arch/s390/kernel/vdso32/.gitignore create mode 100644 arch/s390/kernel/vdso32/Makefile create mode 100755 arch/s390/kernel/vdso32/gen_vdso_offsets.sh create mode 100644 arch/s390/kernel/vdso32/note.S create mode 100644 arch/s390/kernel/vdso32/vdso32.lds.S create mode 100644 arch/s390/kernel/vdso32/vdso32_wrapper.S create mode 100644 arch/s390/kernel/vdso32/vdso_user_wrapper.S create mode 100755 arch/s390/kernel/vdso64/gen_vdso_offsets.sh