Hello Linus, please pull s390 fixes and features for 5.3. This is my first pull request. My PGP key id is 716A93D7, key fingerprint: F397 316C 210A 9C03 1205 6691 467C 8ED2 716A 93D7 Please also note the fixup required to avoid s390 build error after you pull Greg's driver-core changes for 5.3: http://lkml.kernel.org/r/e9889ea3-0286-df1c-864c-ba67a0286855@xxxxxxxxxx I'm also including the corresponding patch as a follow up email for your convenience. So you could either apply the patch after the second tree was merged or you could simply fixup the code during merging. Thank you, Vasily The following changes since commit f2c7c76c5d0a443053e94adb9f0918fa2fb85c3a: Linux 5.2-rc3 (2019-06-02 13:55:33 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git s390-5.3-1 for you to fetch changes up to 499723d12063aab97dfe6b41c822e9c1c74eff3e: docs: s390: s390dbf: typos and formatting, update crash command (2019-07-05 13:42:24 +0200) ---------------------------------------------------------------- s390 updates for the 5.3 merge window - Improve stop_machine wait logic: replace cpu_relax_yield call in generic stop_machine function with a weak stop_machine_yield function. This is overridden on s390, which yields the current cpu to the neighbouring cpu after a couple of retries, instead of blindly giving up the cpu to the hipervisor. This significantly improves stop_machine performance on s390 in overcommitted scenarios. This includes common code changes which have been Acked by Peter Zijlstra and Thomas Gleixner. - Improve jump label transformation speed: transform jump labels without using stop_machine. - Refactoring of the vfio-ccw cp handling, simplifying the code and avoiding unneeded allocating/copying. - Various vfio-ccw fixes (ccw translation, state machine). - Add support for vfio-ap queue interrupt control in the guest. This includes s390 kvm changes which have been Acked by Christian Borntraeger. - Add protected virtualization support for virtio-ccw. - Enforce both CONFIG_SMP and CONFIG_HOTPLUG_CPU, which allows to remove some code which most likely isn't working at all, besides that s390 didn't even compile for !CONFIG_SMP. - Support for special flagged EP11 CPRBs for zcrypt. - Handle PCI devices with no support for new MIO instructions. - Avoid KASAN false positives in reworked stack unwinder. - Couple of fixes for the QDIO layer. - Convert s390 specific documentation to ReST format. - Let s390 crypto modules return -ENODEV instead of -EOPNOTSUPP if hardware is missing. This way our modules behave like most other modules and which is also what systemd's systemd-modules-load.service expects. - Replace defconfig with performance_defconfig, so there is one config file less to maintain. - Remove the SCLP call home device driver, which was never useful. - Cleanups all over the place. ---------------------------------------------------------------- Alexandre Ghiti (1): s390/mm: mmap base does not depend on ADDR_NO_RANDOMIZE personality Cornelia Huck (2): vfio-ccw: make convert_ccw0_to_ccw1 static s390/cio: introduce driver_override on the css bus Dan Carpenter (1): s390/dasd: Fix a precision vs width bug in dasd_feature_list() David Hildenbrand (4): s390/pkey: Use -ENODEV instead of -EOPNOTSUPP s390/crypto: ghash: Use -ENODEV instead of -EOPNOTSUPP s390/crypto: prng: Use -ENODEV instead of -EOPNOTSUPP s390/crypto: sha: Use -ENODEV instead of -EOPNOTSUPP Enrico Weigelt, metux IT consult (1): s390/Kconfig: pedantic cleanups Eric Farman (22): s390/cio: Update SCSW if it points to the end of the chain s390/cio: Set vfio-ccw FSM state before ioeventfd s390/cio: Split pfn_array_alloc_pin into pieces s390/cio: Initialize the host addresses in pfn_array s390/cio: Don't pin vfio pages for empty transfers s390/cio: Allow zero-length CCWs in vfio-ccw s390/cio: Remove vfio-ccw checks of command codes s390/cio: Squash cp_free() and cp_unpin_free() s390/cio: Refactor the routine that handles TIC CCWs s390/cio: Generalize the TIC handler s390/cio: Use generalized CCW handler in cp_init() vfio-ccw: Rearrange pfn_array and pfn_array_table arrays vfio-ccw: Adjust the first IDAW outside of the nested loops vfio-ccw: Remove pfn_array_table vfio-ccw: Rearrange IDAL allocation in direct CCW s390/cio: Combine direct and indirect CCW paths vfio-ccw: Move guest_cp storage into common struct vfio-ccw: Skip second copy of guest cp to host vfio-ccw: Copy CCW data outside length calculation vfio-ccw: Factor out the ccw0-to-ccw1 transition vfio-ccw: Remove copy_ccw_from_iova() vfio-ccw: Fix the conversion of Format-0 CCWs to Format-1 Halil Pasic (8): s390/mm: force swiotlb for protected virtualization s390/cio: introduce DMA pools to cio s390/cio: add basic protected virtualization support s390/airq: use DMA memory for adapter interrupts virtio/s390: use cacheline aligned airq bit vectors virtio/s390: add indirection to indicators access virtio/s390: use DMA memory for ccw I/O and classic notifiers virtio/s390: make airq summary indicators DMA Harald Freudenberger (1): s390/zcrypt: support special flagged EP11 cprbs Heiko Carstens (11): Merge tag 'vfio-ccw-20190603' of https://git.kernel.org/.../kvms390/vfio-ccw into features s390: enforce CONFIG_SMP s390: enforce CONFIG_HOTPLUG_CPU s390/boot: disable address-of-packed-member warning s390/jump_label: remove unused structure definition s390/kdump: get rid of compile warning processor: remove spin_cpu_yield processor: get rid of cpu_relax_yield s390: replace defconfig with performance_defconfig s390/sclp: remove call home support s390: fix stfle zero padding Julian Wiedmann (4): s390/qdio: handle PENDING state for QEBSM devices s390/cio: move struct node_descriptor to cio.h s390/qdio: (re-)initialize tiqdio list entries s390/qdio: don't touch the dsci in tiqdio_add_input_queues() Krzysztof Kozlowski (1): s390/configs: remove useless UEVENT_HELPER_PATH Martin Schwidefsky (4): s390/jump_label: replace stop_machine with smp_call_function s390/disassembler: update opcode table s390: improve wait logic of stop_machine Update default configuration Masahiro Yamada (6): s390: do not pass $(LINUXINCLUDE) to gen_opcode_table.c s390: drop unneeded -Wall addition from tools Makefile s390: drop redundant directory creation from tools Makefile s390: drop meaningless 'targets' from tools Makefile s390/purgatory: update .gitignore s390: fix unrecognized __aligned() in uapi header Mauro Carvalho Chehab (3): docs: Debugging390.txt: convert table to ascii artwork docs: s390: convert docs to ReST and rename to *.rst s390: include/asm/debug.h add kerneldoc markups Pierre Morel (4): s390: ap: kvm: add PQAP interception for AQIC vfio: ap: register IOMMU VFIO notifier s390: ap: implement PAPQ AQIC interception in kernel s390: ap: kvm: Enable PQAP/AQIC facility for the guest Sebastian Ott (3): s390/cio: fix kdoc for tiqdio_thinint_handler s390/pci: deal with devices that have no support for MIO instructions s390/pci: correctly handle MIO opt-out Steffen Maier (3): docs: s390: restore important non-kdoc parts of s390dbf.rst docs: s390: unify and update s390dbf kdocs at debug.c docs: s390: s390dbf: typos and formatting, update crash command Vasily Gorbik (6): RAID/s390: remove invalid 'r' inline asm operand modifier s390/traps: simplify data exception handler Merge tag 'vfio-ccw-20190621' of https://git.kernel.org/.../kvms390/vfio-ccw into features s390/kasan: avoid false positives during stack unwind s390/unwind: cleanup unused READ_ONCE_TASK_STACK Merge tag 'vfio-ccw-20190705' of https://git.kernel.org/.../kvms390/vfio-ccw into features xiaolinkui (1): s390/idal: use struct_size() in kmalloc() Documentation/ABI/testing/sysfs-bus-css | 23 + Documentation/admin-guide/kernel-parameters.txt | 4 +- Documentation/driver-api/s390-drivers.rst | 4 +- Documentation/s390/{3270.txt => 3270.rst} | 85 +- Documentation/s390/Debugging390.txt | 2142 ---------------- Documentation/s390/{cds.txt => cds.rst} | 368 +-- Documentation/s390/{CommonIO => common_io.rst} | 49 +- Documentation/s390/{DASD => dasd.rst} | 33 +- Documentation/s390/debugging390.rst | 2613 ++++++++++++++++++++ .../s390/{driver-model.txt => driver-model.rst} | 179 +- Documentation/s390/index.rst | 30 + .../s390/{monreader.txt => monreader.rst} | 85 +- Documentation/s390/{qeth.txt => qeth.rst} | 36 +- Documentation/s390/s390dbf.rst | 487 ++++ Documentation/s390/s390dbf.txt | 667 ----- Documentation/s390/text_files.rst | 11 + Documentation/s390/{vfio-ap.txt => vfio-ap.rst} | 499 ++-- Documentation/s390/{vfio-ccw.txt => vfio-ccw.rst} | 92 +- Documentation/s390/{zfcpdump.txt => zfcpdump.rst} | 2 + Documentation/sysctl/kernel.txt | 16 - MAINTAINERS | 4 +- arch/powerpc/include/asm/processor.h | 2 - arch/s390/Kconfig | 41 +- arch/s390/Makefile | 1 + arch/s390/configs/debug_defconfig | 2 + arch/s390/configs/defconfig | 600 ++++- arch/s390/configs/performance_defconfig | 678 ----- arch/s390/configs/zfcpdump_defconfig | 1 - arch/s390/crypto/ghash_s390.c | 2 +- arch/s390/crypto/prng.c | 4 +- arch/s390/crypto/sha1_s390.c | 2 +- arch/s390/crypto/sha256_s390.c | 2 +- arch/s390/crypto/sha512_s390.c | 2 +- arch/s390/include/asm/airq.h | 2 + arch/s390/include/asm/ccwdev.h | 4 + arch/s390/include/asm/cio.h | 41 + arch/s390/include/asm/ctl_reg.h | 9 +- arch/s390/include/asm/debug.h | 153 +- arch/s390/include/asm/facility.h | 21 +- arch/s390/include/asm/idals.h | 3 +- arch/s390/include/asm/kvm_host.h | 7 + arch/s390/include/asm/mem_encrypt.h | 17 + arch/s390/include/asm/pci.h | 5 + arch/s390/include/asm/percpu.h | 2 +- arch/s390/include/asm/processor.h | 7 +- arch/s390/include/asm/smp.h | 35 - arch/s390/include/asm/spinlock.h | 4 - arch/s390/include/asm/tlbflush.h | 17 - arch/s390/include/asm/unwind.h | 19 - arch/s390/include/uapi/asm/runtime_instr.h | 2 +- arch/s390/kernel/Makefile | 2 +- arch/s390/kernel/debug.c | 105 +- arch/s390/kernel/dis.c | 5 +- arch/s390/kernel/dumpstack.c | 2 - arch/s390/kernel/entry.S | 4 - arch/s390/kernel/jump_label.c | 23 +- arch/s390/kernel/machine_kexec.c | 3 +- arch/s390/kernel/processor.c | 19 +- arch/s390/kernel/setup.c | 2 - arch/s390/kernel/smp.c | 21 +- arch/s390/kernel/swsusp.S | 2 - arch/s390/kernel/traps.c | 10 +- arch/s390/kernel/unwind_bc.c | 16 +- arch/s390/kvm/kvm-s390.c | 3 + arch/s390/kvm/priv.c | 86 + arch/s390/lib/Makefile | 3 +- arch/s390/mm/init.c | 47 + arch/s390/mm/maccess.c | 9 +- arch/s390/mm/mmap.c | 2 - arch/s390/pci/pci.c | 15 +- arch/s390/pci/pci_clp.c | 2 +- arch/s390/purgatory/.gitignore | 3 +- arch/s390/tools/Makefile | 7 +- arch/s390/tools/opcodes.txt | 51 +- drivers/s390/block/Kconfig | 2 +- drivers/s390/block/dasd_devmap.c | 2 +- drivers/s390/char/Kconfig | 22 - drivers/s390/char/Makefile | 1 - drivers/s390/char/sclp_async.c | 189 -- drivers/s390/char/zcore.c | 2 +- drivers/s390/cio/airq.c | 37 +- drivers/s390/cio/ccwreq.c | 9 +- drivers/s390/cio/chsc.c | 30 - drivers/s390/cio/cio.h | 3 + drivers/s390/cio/css.c | 187 +- drivers/s390/cio/device.c | 68 +- drivers/s390/cio/device_fsm.c | 49 +- drivers/s390/cio/device_id.c | 20 +- drivers/s390/cio/device_ops.c | 21 +- drivers/s390/cio/device_pgid.c | 22 +- drivers/s390/cio/device_status.c | 24 +- drivers/s390/cio/io_sch.h | 20 +- drivers/s390/cio/qdio_main.c | 1 + drivers/s390/cio/qdio_setup.c | 2 + drivers/s390/cio/qdio_thinint.c | 6 +- drivers/s390/cio/vfio_ccw_cp.c | 524 ++-- drivers/s390/cio/vfio_ccw_cp.h | 7 + drivers/s390/cio/vfio_ccw_drv.c | 13 +- drivers/s390/crypto/pkey_api.c | 8 +- drivers/s390/crypto/vfio_ap_drv.c | 34 +- drivers/s390/crypto/vfio_ap_ops.c | 380 ++- drivers/s390/crypto/vfio_ap_private.h | 15 + drivers/s390/crypto/zcrypt_msgtype6.c | 4 + drivers/s390/net/Kconfig | 8 +- drivers/s390/virtio/virtio_ccw.c | 246 +- include/linux/processor.h | 9 - include/linux/sched.h | 4 - include/linux/stop_machine.h | 1 + kernel/stop_machine.c | 19 +- lib/raid6/s390vx.uc | 2 +- 110 files changed, 6308 insertions(+), 5239 deletions(-) rename Documentation/s390/{3270.txt => 3270.rst} (90%) delete mode 100644 Documentation/s390/Debugging390.txt rename Documentation/s390/{cds.txt => cds.rst} (64%) rename Documentation/s390/{CommonIO => common_io.rst} (87%) rename Documentation/s390/{DASD => dasd.rst} (92%) create mode 100644 Documentation/s390/debugging390.rst rename Documentation/s390/{driver-model.txt => driver-model.rst} (73%) create mode 100644 Documentation/s390/index.rst rename Documentation/s390/{monreader.txt => monreader.rst} (81%) rename Documentation/s390/{qeth.txt => qeth.rst} (62%) create mode 100644 Documentation/s390/s390dbf.rst delete mode 100644 Documentation/s390/s390dbf.txt create mode 100644 Documentation/s390/text_files.rst rename Documentation/s390/{vfio-ap.txt => vfio-ap.rst} (72%) rename Documentation/s390/{vfio-ccw.txt => vfio-ccw.rst} (89%) rename Documentation/s390/{zfcpdump.txt => zfcpdump.rst} (97%) delete mode 100644 arch/s390/configs/performance_defconfig create mode 100644 arch/s390/include/asm/mem_encrypt.h delete mode 100644 drivers/s390/char/sclp_async.c