[GIT PULL] s390 patches for the 5.2 merge window

From: Martin Schwidefsky
Date: Mon May 06 2019 - 08:01:03 EST


The following changes since commit 2cc9637ce825f3a9f51f8f78af7474e9e85bfa5f:

s390/dasd: Fix capacity calculation for large volumes (2019-03-29 07:23:44 +0100)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux s390-5.2-1

for you to fetch changes up to ce968f6012f632bbe071839d229db77c45fc38d1:

s390/vdso: drop unnecessary cc-ldoption (2019-05-03 17:17:58 +0200)

----------------------------------------------------------------
s390 updates for the 5.2 merge window

- Support for kernel address space layout randomization

- Add support for kernel image signature verification

- Convert s390 to the generic get_user_pages_fast code

- Convert s390 to the stack unwind API analog to x86

- Add support for CPU directed interrupts for PCI devices

- Provide support for MIO instructions to the PCI base layer, this
will allow the use of direct PCI mappings in user space code

- Add the basic KVM guest ultravisor interface for protected VMs

- Add AT_HWCAP bits for several new hardware capabilities

- Update the CPU measurement facility counter definitions to SVN 6

- Arnds cleanup patches for his quest to get LLVM compiles working

- A vfio-ccw update with bug fixes and support for halt and clear

- Improvements for the hardware TRNG code

- Another round of cleanup for the QDIO layer

- Numerous cleanups and bug fixes

----------------------------------------------------------------
Arnd Bergmann (12):
s390: cio: fix cio_irb declaration
s390: remove -fno-strength-reduce flag
s390: don't build vdso32 with clang
s390: syscall_wrapper: avoid clang warning
s390: make __load_psw_mask work with clang
s390: make chkbss work with clang
s390: avoid __builtin_return_address(n) on clang
s390: zcrypt: initialize variables before_use
s390: only build for new CPUs with clang
s390: boot, purgatory: pass $(CLANG_FLAGS) where needed
s390: drop CONFIG_VIRT_TO_BUS
s390: fix clang -Wpointer-sign warnigns in boot code

Cornelia Huck (6):
vfio-ccw: make it safe to access channel programs
vfio-ccw: rework ssch state handling
vfio-ccw: protect the I/O region
vfio-ccw: add capabilities chain
s390/cio: export hsch to modules
vfio-ccw: add handling for async channel instructions

Farhan Ali (3):
vfio-ccw: Do not call flush_workqueue while holding the spinlock
vfio-ccw: Release any channel program when releasing/removing vfio-ccw mdev
vfio-ccw: Prevent quiesce function going into an infinite loop

Gerald Schaefer (8):
s390: introduce .boot.preserved.data section
s390/kernel: build a relocatable kernel
s390/kernel: convert SYSCALL and PGM_CHECK handlers to .quad
s390/kprobes: use static buffer for insn_page
s390/sclp: do not use static sccbs
s390/kernel: introduce .dma sections
s390/kernel: add support for kernel address space layout randomization (KASLR)
locking/lockdep: check for freed initmem in static_obj()

Harald Freudenberger (2):
s390/crypto: rework generate_entropy function for pseudo random dd
s390/crypto: use TRNG for seeding/reseeding

Joe Perches (1):
s390: Convert IS_ENABLED uses to __is_defined

Julian Wiedmann (8):
s390/qdio: clean up pci_out_supported()
s390/qdio: clean up qdio_check_outbound_after_thinint()
s390/qdio: fix output of DSCI value in debug file
s390/qdio: pass up count of ready-to-process SBALs
s390/qdio: simplify SBAL range calculation
s390/qdio: eliminate queue's last_move cursor
s390/qdio: limit direct access to first_to_check cursor
s390/qdio: consolidate index tracking for queue scan

Martin Schwidefsky (21):
s390/rseq: use trap4 for RSEQ_SIG
s390: fine-tune stack switch helper
s390/mm: make the pxd_offset functions more robust
s390/mm: convert to the generic get_user_pages_fast code
s390/mm: fix pxd_bad with folded page tables
Merge tag 'vfio-ccw-20190425' of https://git.kernel.org/.../kvms390/vfio-ccw into features
s390: report new CPU capabilities
s390/ipl: make ipl_info less confusing
s390/ipl: provide uapi header for list directed IPL
s390/ipl: add definitions for the IPL report block
s390/ipl: read IPL report at early boot
s390/ipl: add helper functions to create an IPL report
s390/boot: pad bzImage to 4K
s390: add missing ENDPROC statements to assembler functions
s390/nospec: rename assembler generated expoline thunks
s390: use proper expoline sections for .dma code
s390/bug: add entry size to the __bug_table section
s390/opcodes: add missing instructions to the disassembler
s390/unwind: introduce stack unwind API
s390/ftrace: use HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
s390: simplify disabled_wait

Nick Desaulniers (1):
s390/vdso: drop unnecessary cc-ldoption

Philipp Rudo (12):
s390/zcore: Rename ipl_block to mitigate name collision
s390/kexec_file: Fix potential segment overlap in ELF loader
s390/kexec_file: Fix detection of text segment in ELF loader
s390/purgatory: Reduce purgatory size
s390/purgatory: Omit use of bin2c
s390/kexec_file: Simplify parmarea access
s390/kexec_file: Unify loader code
s390/kexec_file: Load new kernel to absolute 0
s390/kexec_file: Signature verification prototype
s390/kexec_file: Create ipl report and pass to next kernel
s390/kexec_file: Disable kexec_load when IPLed secure
s390/ipl: Provide has_secure sysfs attribute

Sebastian Ott (16):
s390/pci: mark command line parser data __initdata
s390/pci: remove unused define
s390/pci: move everything irq related to pci_irq.c
s390/sclp: detect DIRQ facility
s390/airq: recognize directed interrupts
s390/pci: clarify interrupt vector usage
s390/airq: provide cacheline aligned ivs
s390/pci: provide support for CPU directed interrupts
s390: show statistics for MSI IRQs
s390/pci: gather statistics for floating vs directed irqs
s390/pci: add parameter to force floating irqs
s390/pci: move io address mapping code to pci_insn.c
s390/ism: move oddities of device IO to wrapper function
s390/pci: provide support for MIO instructions
s390/pci: add parameter to disable usage of MIO instructions
s390: enable processes for mio instructions

Thomas Huth (1):
s390/mm: silence compiler warning when compiling without CONFIG_PGSTE

Thomas Richter (1):
s390/cpum_cf: Add support for CPU-MF SVN 6

Thomas-Mich Richter (1):
s390/cpum_cf_diag: Add support for CPU-MF SVN 6

Vasily Gorbik (6):
s390: move ipl block to .boot.preserved.data section
s390: introduce .boot.preserved.data section compile time validation
s390/uv: introduce guest side ultravisor code
s390/protvirt: add memory sharing for diag 308 set/store
s390/protvirt: block kernel command line alteration
s390/kasan: fix strncpy_from_user kasan checks

Documentation/admin-guide/kernel-parameters.txt | 2 +
arch/s390/Kconfig | 56 ++-
arch/s390/Makefile | 10 +-
arch/s390/boot/Makefile | 31 +-
arch/s390/boot/als.c | 2 +-
arch/s390/boot/boot.h | 5 +
arch/s390/boot/compressed/decompressor.h | 5 +
arch/s390/boot/compressed/vmlinux.lds.S | 22 +
arch/s390/boot/head.S | 48 ++-
arch/s390/boot/ipl_parm.c | 54 ++-
arch/s390/boot/ipl_report.c | 165 ++++++++
arch/s390/boot/kaslr.c | 144 +++++++
arch/s390/boot/machine_kexec_reloc.c | 2 +
arch/s390/boot/startup.c | 121 +++++-
arch/s390/boot/text_dma.S | 184 ++++++++
arch/s390/boot/uv.c | 24 ++
arch/s390/configs/debug_defconfig | 1 +
arch/s390/configs/performance_defconfig | 1 +
arch/s390/crypto/crc32be-vx.S | 1 +
arch/s390/crypto/crc32le-vx.S | 6 +-
arch/s390/crypto/prng.c | 135 ++++--
arch/s390/defconfig | 1 +
arch/s390/hypfs/hypfs_diag0c.c | 18 +-
arch/s390/include/asm/airq.h | 12 +-
arch/s390/include/asm/bitops.h | 12 +-
arch/s390/include/asm/boot_data.h | 11 +-
arch/s390/include/asm/bug.h | 24 +-
arch/s390/include/asm/diag.h | 13 +
arch/s390/include/asm/ebcdic.h | 2 +-
arch/s390/include/asm/elf.h | 4 +
arch/s390/include/asm/extable.h | 5 +
arch/s390/include/asm/ftrace.h | 7 +
arch/s390/include/asm/io.h | 17 +-
arch/s390/include/asm/ipl.h | 132 +++---
arch/s390/include/asm/irq.h | 9 +-
arch/s390/include/asm/kexec.h | 26 +-
arch/s390/include/asm/linkage.h | 7 +
arch/s390/include/asm/lowcore.h | 2 +-
arch/s390/include/asm/nospec-insn.h | 10 +-
arch/s390/include/asm/pci.h | 12 +
arch/s390/include/asm/pci_clp.h | 20 +-
arch/s390/include/asm/pci_insn.h | 97 ++++-
arch/s390/include/asm/pci_io.h | 49 +--
arch/s390/include/asm/pgtable.h | 112 +++--
arch/s390/include/asm/processor.h | 82 +---
arch/s390/include/asm/sclp.h | 3 +
arch/s390/include/asm/sections.h | 22 +
arch/s390/include/asm/setup.h | 21 +-
arch/s390/include/asm/stacktrace.h | 114 +++++
arch/s390/include/asm/syscall.h | 9 +-
arch/s390/include/asm/syscall_wrapper.h | 4 +-
arch/s390/include/asm/uaccess.h | 2 +
arch/s390/include/asm/unwind.h | 101 +++++
arch/s390/include/asm/uv.h | 132 ++++++
arch/s390/include/asm/vmlinux.lds.h | 13 +
arch/s390/include/uapi/asm/ipl.h | 154 +++++++
arch/s390/kernel/Makefile | 7 +-
arch/s390/kernel/asm-offsets.c | 1 +
arch/s390/kernel/base.S | 71 +---
arch/s390/kernel/diag.c | 67 +--
arch/s390/kernel/dumpstack.c | 167 +++++---
arch/s390/kernel/early.c | 9 +-
arch/s390/kernel/early_nobss.c | 2 +-
arch/s390/kernel/entry.S | 42 +-
arch/s390/kernel/entry.h | 2 +-
arch/s390/kernel/ftrace.c | 9 +-
arch/s390/kernel/head64.S | 26 --
arch/s390/kernel/ima_arch.c | 14 +
arch/s390/kernel/ipl.c | 370 +++++++++++-----
arch/s390/kernel/ipl_vmparm.c | 8 +-
arch/s390/kernel/irq.c | 49 ++-
arch/s390/kernel/kexec_elf.c | 63 ++-
arch/s390/kernel/kexec_image.c | 49 +--
arch/s390/kernel/kprobes.c | 37 +-
arch/s390/kernel/machine_kexec.c | 8 +-
arch/s390/kernel/machine_kexec_file.c | 268 ++++++++----
arch/s390/kernel/machine_kexec_reloc.c | 53 +++
arch/s390/kernel/mcount.S | 12 +-
arch/s390/kernel/nmi.c | 2 +-
arch/s390/kernel/nospec-branch.c | 6 +-
arch/s390/kernel/nospec-sysfs.c | 2 +-
arch/s390/kernel/perf_cpum_cf.c | 15 +-
arch/s390/kernel/perf_cpum_cf_diag.c | 9 +-
arch/s390/kernel/perf_cpum_cf_events.c | 107 +++--
arch/s390/kernel/perf_event.c | 16 +-
arch/s390/kernel/pgm_check.S | 2 +-
arch/s390/kernel/process.c | 1 +
arch/s390/kernel/processor.c | 3 +-
arch/s390/kernel/reipl.S | 1 +
arch/s390/kernel/relocate_kernel.S | 4 +
arch/s390/kernel/setup.c | 71 +++-
arch/s390/kernel/smp.c | 3 +-
arch/s390/kernel/stacktrace.c | 69 ++-
arch/s390/kernel/swsusp.S | 17 +-
arch/s390/kernel/traps.c | 3 +-
arch/s390/kernel/unwind_bc.c | 155 +++++++
arch/s390/kernel/vdso.c | 10 +-
arch/s390/kernel/vdso32/Makefile | 2 +-
arch/s390/kernel/vdso64/Makefile | 2 +-
arch/s390/kernel/vmlinux.lds.S | 19 +
arch/s390/kvm/interrupt.c | 2 +-
arch/s390/lib/mem.S | 1 +
arch/s390/mm/Makefile | 2 +-
arch/s390/mm/fault.c | 14 +-
arch/s390/mm/gup.c | 300 -------------
arch/s390/mm/init.c | 3 +
arch/s390/mm/maccess.c | 1 +
arch/s390/mm/pgtable.c | 2 +
arch/s390/mm/vmem.c | 2 +
arch/s390/net/bpf_jit_comp.c | 6 +-
arch/s390/oprofile/init.c | 22 +-
arch/s390/pci/Makefile | 2 +-
arch/s390/pci/pci.c | 366 ++++++----------
arch/s390/pci/pci_clp.c | 25 +-
arch/s390/pci/pci_insn.c | 169 +++++++-
arch/s390/pci/pci_irq.c | 486 ++++++++++++++++++++++
arch/s390/purgatory/Makefile | 20 +-
arch/s390/purgatory/kexec-purgatory.S | 14 +
arch/s390/purgatory/purgatory.lds.S | 54 +++
arch/s390/scripts/Makefile.chkbss | 3 +-
arch/s390/tools/opcodes.txt | 11 +
drivers/s390/char/sclp.c | 14 +-
drivers/s390/char/sclp.h | 10 +-
drivers/s390/char/sclp_early.c | 5 +-
drivers/s390/char/sclp_early_core.c | 20 +-
drivers/s390/char/sclp_sdias.c | 74 ++--
drivers/s390/char/zcore.c | 22 +-
drivers/s390/cio/Makefile | 3 +-
drivers/s390/cio/airq.c | 41 +-
drivers/s390/cio/cio.c | 2 +-
drivers/s390/cio/cio.h | 4 +-
drivers/s390/cio/ioasm.c | 1 +
drivers/s390/cio/qdio.h | 6 +-
drivers/s390/cio/qdio_debug.c | 9 +-
drivers/s390/cio/qdio_main.c | 211 +++++-----
drivers/s390/cio/qdio_setup.c | 2 +-
drivers/s390/cio/qdio_thinint.c | 4 +-
drivers/s390/cio/vfio_ccw_async.c | 88 ++++
drivers/s390/cio/vfio_ccw_cp.c | 21 +-
drivers/s390/cio/vfio_ccw_cp.h | 2 +
drivers/s390/cio/vfio_ccw_drv.c | 81 ++--
drivers/s390/cio/vfio_ccw_fsm.c | 143 ++++++-
drivers/s390/cio/vfio_ccw_ops.c | 227 ++++++++--
drivers/s390/cio/vfio_ccw_private.h | 48 ++-
drivers/s390/crypto/ap_bus.c | 4 +-
drivers/s390/crypto/zcrypt_api.c | 4 +
drivers/s390/net/ism.h | 29 +-
drivers/s390/net/ism_drv.c | 20 +-
drivers/s390/virtio/virtio_ccw.c | 2 +-
include/asm-generic/sections.h | 14 +
include/linux/ima.h | 2 +-
include/uapi/linux/vfio.h | 4 +
include/uapi/linux/vfio_ccw.h | 12 +
kernel/locking/lockdep.c | 3 +
kernel/panic.c | 7 +-
security/integrity/Kconfig | 11 +-
security/integrity/Makefile | 8 +-
security/integrity/platform_certs/load_ipl_s390.c | 36 ++
tools/testing/selftests/rseq/rseq-s390.h | 9 +-
159 files changed, 4904 insertions(+), 1935 deletions(-)
create mode 100644 arch/s390/boot/ipl_report.c
create mode 100644 arch/s390/boot/kaslr.c
create mode 100644 arch/s390/boot/machine_kexec_reloc.c
create mode 100644 arch/s390/boot/text_dma.S
create mode 100644 arch/s390/boot/uv.c
create mode 100644 arch/s390/include/asm/stacktrace.h
create mode 100644 arch/s390/include/asm/unwind.h
create mode 100644 arch/s390/include/asm/uv.h
create mode 100644 arch/s390/include/uapi/asm/ipl.h
create mode 100644 arch/s390/kernel/ima_arch.c
create mode 100644 arch/s390/kernel/machine_kexec_reloc.c
create mode 100644 arch/s390/kernel/unwind_bc.c
delete mode 100644 arch/s390/mm/gup.c
create mode 100644 arch/s390/pci/pci_irq.c
create mode 100644 arch/s390/purgatory/kexec-purgatory.S
create mode 100644 arch/s390/purgatory/purgatory.lds.S
create mode 100644 drivers/s390/cio/vfio_ccw_async.c
create mode 100644 security/integrity/platform_certs/load_ipl_s390.c