Hi Linus, please pull s390 update for 5.13 merge window. Note that I once merged our fixes branch. Therefore this pull request contains commits which are already in 5.12. The resulting diffstat when merging this will look like 58 files changed, 1458 insertions(+), 964 deletions(-) unlike the one generated by 'git request-pull' below. Thanks, Heiko The following changes since commit 0d02ec6b3136c73c09e7859f0d0e4e2c4c07b49b: Linux 5.12-rc4 (2021-03-21 14:56:43 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-5.13-1 for you to fetch changes up to 6f3353c2d2b3eb4de52e9704cb962712033db181: s390/disassembler: increase ebpf disasm buffer size (2021-04-21 12:32:12 +0200) ---------------------------------------------------------------- s390 updates for 5.13 merge window - fix buffer size for in-kernel disassembler for ebpf programs. - fix two memory leaks in zcrypt driver. - expose PCI device UID as index, including an indicator if the uid is unique. - remove some oprofile leftovers. - improve stack unwinder tests. - don't use gcc atomic builtins anymore, just like all other architectures. Even though I'm sure the current code is ok, I totally dislike that s390 is the only architecture being special here; especially considering that there was a lengthly discussion about this topic and the outcome was not to use the builtins. Therefore open-code atomic ops again with inline assembly and switch to gcc builtins as soon as other architectures are doing. - couple of other changes to atomic and cmpxchg, and use atomic-instrumented.h for KASAN. - separate zbus creation, registration, and scanning in our PCI code which allows for cleaner and easier handling. - a rather large change to the vfio-ap code to fix circular locking dependencies when updating crypto masks. - move QAOB handling from qdio layer down to drivers. - add CRW inject facility to common I/O layer. This adds debugs files which allow to generate artificial events from user space for testing purposes. - increase SCLP console line length from 80 to 320 characters to avoid odd wrapped lines. - add protected virtualization guest and host indication files, which indicate either that a guest is running in pv mode or if the hypervisor is capable of starting pv guests. - various other small fixes and improvements all over the place. ---------------------------------------------------------------- Alexander Gordeev (3): s390/cpcmd: fix inline assembly register clobbering s390/mm: fix phys vs virt confusion in mark_kernel_pXd() functions family s390/smp: fix do_restart() prototype Bhaskar Chowdhury (2): s390/kernel: fix a typo s390/crc32-vx: couple of typo fixes Harald Freudenberger (2): s390/zcrypt: fix zcard and zqueue hot-unplug memleak s390/archrandom: add parameter check for s390_arch_random_generate Heiko Carstens (20): s390/vdso: copy tod_steering_delta value to vdso_data page s390/vdso: fix tod_steering_delta type s390/vdso: fix initializing and updating of vdso_data s390/spinlock: remove align attribute from arch_spinlock_t s390/irq: fix reading of ext_params2 field from lowcore s390/setup: use memblock_free_late() to free old stack Merge branch 'fixes' into features s390/traps: convert pgm_check.S to C s390/traps,mm: add conditional trap handlers s390/bitops: make bitops only work on longs s390/atomic: move remaining inline assemblies to atomic_ops.h s390/atomic: use proper constraints s390/atomic: get rid of gcc atomic builtins s390/cmpxchg: get rid of gcc atomic builtins s390/atomic,cmpxchg: switch to use atomic-instrumented.h s390/spinlock: use R constraint in inline assembly s390: update defconfigs s390/cmpxchg: use unsigned long values instead of void pointers s390/atomic,cmpxchg: make constraints work with old compilers s390/atomic,cmpxchg: always inline __xchg/__cmpxchg Janosch Frank (2): s390/uv: add prot virt guest/host indication files s390/uv: fix prot virt host indication compilation Julian Wiedmann (1): s390/qdio: let driver manage the QAOB Marc Zyngier (1): s390: get rid of oprofile leftovers Matthew Rosato (1): MAINTAINERS: add backups for s390 vfio drivers Niklas Schnelle (14): s390/pci: refactor zpci function states s390/pci: deconfigure device on release s390/pci: add zpci_event_hard_deconfigured() s390/pci: unify de-/configure for slots and events s390/pci: move zpci_remove_device() to bus code s390/pci: fix DMA cleanup on hard deconfigure s390/pci: expose UID uniqueness guarantee s390/pci: introduce zpci_bus_scan_device() s390/pci: do more bus setup in zpci_bus_scan() s390/pci: separate zbus creation from scanning s390/pci: use mutex not spinlock for zbus list s390/pci: separate zbus registration from scanning s390/pci: narrow scope of zpci_configure_device() s390/pci: expose a PCI device's UID as its index Peter Oberparleiter (1): s390/sclp: increase sclp console line length Shixin Liu (2): s390/cio: use DEFINE_SPINLOCK() for spinlock s390/cio: use DECLARE_WAIT_QUEUE_HEAD() for wait_queue Tony Krowiak (1): s390/vfio-ap: fix circular lockdep when setting/clearing crypto masks Vasily Gorbik (7): s390/unwind: add machine check handler stack s390/entry: avoid setting up backchain in ext|io handlers s390/entry: save the caller of psw_idle s390/test_unwind: unify error handling paths s390/test_unwind: add WARN if tests failed s390/test_unwind: print test suite start/end info s390/disassembler: increase ebpf disasm buffer size Vineeth Vijayan (5): s390/cio: introduce CIO debugfs directory s390/cio: add CRW inject functionality s390: use DEFINE_SPINLOCK for initialization s390/sclp: use LIST_HEAD for Initialization s390/cio: use DECLARE_WAIT_QUEUE_HEAD for static work_queue_head_t Wan Jiabing (1): s390/cio: remove duplicate struct ccw1 declaration zhongbaisong (1): s390/protvirt: fix error return code in uv_info_init() Documentation/ABI/testing/sysfs-bus-pci | 11 +- Documentation/s390/pci.rst | 14 +- MAINTAINERS | 4 +- arch/s390/Kconfig.debug | 8 + arch/s390/configs/debug_defconfig | 2 +- arch/s390/configs/defconfig | 1 - arch/s390/crypto/arch_random.c | 4 + arch/s390/crypto/crc32be-vx.S | 4 +- arch/s390/include/asm/atomic.h | 98 ++++++---- arch/s390/include/asm/atomic_ops.h | 76 +++++++- arch/s390/include/asm/bitops.h | 93 ++++----- arch/s390/include/asm/ccwdev.h | 3 - arch/s390/include/asm/cmpxchg.h | 168 ++++++++++++++-- arch/s390/include/asm/entry-common.h | 4 - arch/s390/include/asm/pci.h | 10 +- arch/s390/include/asm/qdio.h | 22 +-- arch/s390/include/asm/spinlock.h | 2 +- arch/s390/include/asm/spinlock_types.h | 2 +- arch/s390/include/asm/stacktrace.h | 1 + arch/s390/include/asm/vdso/data.h | 2 +- arch/s390/kernel/Makefile | 2 +- arch/s390/kernel/cpcmd.c | 6 +- arch/s390/kernel/dis.c | 2 +- arch/s390/kernel/dumpstack.c | 12 +- arch/s390/kernel/entry.S | 7 +- arch/s390/kernel/entry.h | 25 +-- arch/s390/kernel/ipl.c | 4 +- arch/s390/kernel/irq.c | 2 +- arch/s390/kernel/os_info.c | 2 +- arch/s390/kernel/perf_event.c | 21 -- arch/s390/kernel/pgm_check.S | 147 -------------- arch/s390/kernel/setup.c | 2 +- arch/s390/kernel/time.c | 10 +- arch/s390/kernel/traps.c | 76 +++++++- arch/s390/kernel/uv.c | 47 ++++- arch/s390/lib/test_unwind.c | 19 +- arch/s390/mm/fault.c | 18 +- arch/s390/mm/page-states.c | 8 +- arch/s390/pci/pci.c | 132 ++++++++----- arch/s390/pci/pci_bus.c | 331 +++++++++++++++++++++++--------- arch/s390/pci/pci_bus.h | 6 + arch/s390/pci/pci_event.c | 96 ++++----- arch/s390/pci/pci_sysfs.c | 44 +++++ drivers/pci/hotplug/s390_pci_hpc.c | 59 +----- drivers/s390/char/con3215.c | 3 +- drivers/s390/char/sclp.c | 6 +- drivers/s390/char/sclp_con.c | 28 +-- drivers/s390/char/sclp_tty.c | 18 +- drivers/s390/char/sclp_vt220.c | 9 +- drivers/s390/cio/Makefile | 4 +- drivers/s390/cio/chp.c | 3 +- drivers/s390/cio/cio_debug.h | 3 + drivers/s390/cio/cio_debugfs.c | 23 +++ drivers/s390/cio/cio_inject.c | 171 +++++++++++++++++ drivers/s390/cio/cio_inject.h | 18 ++ drivers/s390/cio/css.c | 6 +- drivers/s390/cio/ioasm.c | 23 ++- drivers/s390/cio/qdio.h | 10 - drivers/s390/cio/qdio_main.c | 63 +----- drivers/s390/cio/qdio_setup.c | 49 +---- drivers/s390/crypto/vfio_ap_ops.c | 308 ++++++++++++++++++++--------- drivers/s390/crypto/vfio_ap_private.h | 2 + drivers/s390/crypto/zcrypt_card.c | 1 + drivers/s390/crypto/zcrypt_queue.c | 1 + drivers/s390/net/qeth_core.h | 3 +- drivers/s390/net/qeth_core_main.c | 102 +++++----- drivers/s390/scsi/zfcp_qdio.c | 7 +- 67 files changed, 1491 insertions(+), 977 deletions(-) delete mode 100644 arch/s390/kernel/pgm_check.S create mode 100644 drivers/s390/cio/cio_debugfs.c create mode 100644 drivers/s390/cio/cio_inject.c create mode 100644 drivers/s390/cio/cio_inject.h