Hello Linus, Please pull s390 changes for 6.8 merge window. Please note three KVM commits that were agreed to go via s390 tree as part of a floating-point unit (FPU) rework: KVM: s390: fix setting of fpc register KVM: s390: use READ_ONCE() to read fpc register value KVM: s390: remove superfluous save_fpu_regs() call Also, there is revert of defconfigs update that is upstream already as commit 3d940bb18183 ("s390: update defconfigs"): Revert "s390: update defconfigs" s390: update defconfigs Thank you, Alexander The following changes since commit 98b1cc82c4affc16f5598d4fa14b1858671b2263: Linux 6.7-rc2 (2023-11-19 15:02:14 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.8-1 for you to fetch changes up to b2b97a62f055dd638f7f02087331a8380d8f139a: Revert "s390: update defconfigs" (2023-12-18 10:58:58 +0100) ---------------------------------------------------------------- s390 updates for 6.8 merge window - Add machine variable capacity information to /proc/sysinfo. - Limit the waste of page tables and always align vmalloc area size and base address on segment boundary. - Fix a memory leak when an attempt to register interruption sub class (ISC) for the adjunct-processor (AP) guest failed. - Reset response code AP_RESPONSE_INVALID_GISA to understandable by guest AP_RESPONSE_INVALID_ADDRESS in response to a failed interruption sub class (ISC) registration attempt. - Improve reaction to adjunct-processor (AP) AP_RESPONSE_OTHERWISE_CHANGED response code when enabling interrupts on behalf of a guest. - Fix incorrect sysfs 'status' attribute of adjunct-processor (AP) queue device bound to the vfio_ap device driver when the mediated device is attached to a guest, but the queue device is not passed through. - Rework struct ap_card to hold the whole adjunct-processor (AP) card hardware information. As result, all the ugly bit checks are replaced by simple evaluations of the required bit fields. - Improve handling of some weird scenarios between service element (SE) host and SE guest with adjunct-processor (AP) pass-through support. - Change local_ctl_set_bit() and local_ctl_clear_bit() so they return the previous value of the to be changed control register. This is useful if a bit is only changed temporarily and the previous content needs to be restored. - The kernel starts with machine checks disabled and is expected to enable it once trap_init() is called. However the implementation allows machine checks early. Consistently enable it in trap_init() only. - local_mcck_disable() and local_mcck_enable() assume that machine checks are always enabled. Instead implement and use local_mcck_save() and local_mcck_restore() to disable machine checks and restore the previous state. - Modification of floating point control (FPC) register of a traced process using ptrace interface may lead to corruption of the FPC register of the tracing process. Fix this. - kvm_arch_vcpu_ioctl_set_fpu() allows to set the floating point control (FPC) register in vCPU, but may lead to corruption of the FPC register of the host process. Fix this. - Use READ_ONCE() to read a vCPU floating point register value from the memory mapped area. This avoids that, depending on code generation, a different value is tested for validity than the one that is used. - Get rid of test_fp_ctl(), since it is quite subtle to use it correctly. Instead copy a new floating point control register value into its save area and test the validity of the new value when loading it. - Remove superfluous save_fpu_regs() call. - Remove s390 support for ARCH_WANTS_DYNAMIC_TASK_STRUCT. All machines provide the vector facility since many years and the need to make the task structure size dependent on the vector facility does not exist. - Remove the "novx" kernel command line option, as the vector code runs without any problems since many years. - Add the vector facility to the z13 architecture level set (ALS). All hypervisors support the vector facility since many years. This allows compile time optimizations of the kernel. - Get rid of MACHINE_HAS_VX and replace it with cpu_has_vx(). As result, the compiled code will have less runtime checks and less code. - Convert pgste_get_lock() and pgste_set_unlock() ASM inlines to C. - Convert the struct subchannel spinlock from pointer to member. ---------------------------------------------------------------- Alexander Gordeev (2): s390/boot: always align vmalloc area on segment boundary Revert "s390: update defconfigs" Anthony Krowiak (2): s390/vfio-ap: unpin pages on gisc registration failure s390/vfio-ap: set status response code to 06 on gisc registration failure Claudio Imbrenda (1): s390/mm: convert pgste locking functions to C Halil Pasic (1): s390/cio: make sch->lock spinlock pointer a member Harald Freudenberger (2): s390/ap: store TAPQ hwinfo in struct ap_card s390/ap: handle outband SE bind state change Heiko Carstens (13): s390/ctlreg: return old register contents when changing bits s390/nmi: consistently enable machine checks in trap_init() s390/nmi: implement and use local_mcck_save() / local_mcck_restore() s390/ptrace: handle setting of fpc register correctly KVM: s390: fix setting of fpc register KVM: s390: use READ_ONCE() to read fpc register value s390/fpu: get rid of test_fp_ctl() KVM: s390: remove superfluous save_fpu_regs() call s390/fpu: remove ARCH_WANTS_DYNAMIC_TASK_STRUCT support s390/fpu: remove "novx" option s390/als: add vector facility to z13 architecture level set s390/fpu: get rid of MACHINE_HAS_VX s390: update defconfigs Tony Krowiak (2): s390/vfio-ap: improve reaction to response code 07 from PQAP(AQIC) command s390/vfio-ap: fix sysfs status attribute for AP queue devices Vasily Gorbik (1): s390/sysinfo: add variable capacity information arch/s390/Kconfig | 1 - arch/s390/boot/ipl_parm.c | 2 +- arch/s390/boot/startup.c | 3 +- arch/s390/crypto/chacha-glue.c | 2 +- arch/s390/include/asm/ap.h | 21 ++-- arch/s390/include/asm/ctlreg.h | 24 +++-- arch/s390/include/asm/fpu/api.h | 35 +++--- arch/s390/include/asm/fpu/internal.h | 10 +- arch/s390/include/asm/processor.h | 34 ++++-- arch/s390/include/asm/setup.h | 2 - arch/s390/include/asm/sysinfo.h | 4 + arch/s390/kernel/compat_signal.c | 16 ++- arch/s390/kernel/crash_dump.c | 5 +- arch/s390/kernel/early.c | 12 +-- arch/s390/kernel/fpu.c | 12 +-- arch/s390/kernel/machine_kexec.c | 2 +- arch/s390/kernel/nmi.c | 10 +- arch/s390/kernel/perf_regs.c | 6 +- arch/s390/kernel/process.c | 2 +- arch/s390/kernel/processor.c | 7 +- arch/s390/kernel/ptrace.c | 28 +++-- arch/s390/kernel/setup.c | 25 +---- arch/s390/kernel/signal.c | 12 +-- arch/s390/kernel/smp.c | 6 +- arch/s390/kernel/sysinfo.c | 10 ++ arch/s390/kernel/traps.c | 13 ++- arch/s390/kernel/vmlinux.lds.S | 1 + arch/s390/kvm/interrupt.c | 2 +- arch/s390/kvm/kvm-s390.c | 26 ++--- arch/s390/lib/test_unwind.c | 6 +- arch/s390/mm/pgtable.c | 27 ++--- arch/s390/tools/gen_facilities.c | 1 + drivers/s390/cio/chsc.c | 18 ++-- drivers/s390/cio/chsc_sch.c | 6 +- drivers/s390/cio/cio.c | 6 +- drivers/s390/cio/cio.h | 2 +- drivers/s390/cio/css.c | 36 ++----- drivers/s390/cio/device.c | 66 ++++++------ drivers/s390/cio/device_pgid.c | 12 +-- drivers/s390/cio/eadm_sch.c | 36 +++---- drivers/s390/cio/vfio_ccw_drv.c | 8 +- drivers/s390/cio/vfio_ccw_fsm.c | 24 ++--- drivers/s390/crypto/ap_bus.c | 72 ++++++------- drivers/s390/crypto/ap_bus.h | 22 +--- drivers/s390/crypto/ap_card.c | 18 ++-- drivers/s390/crypto/ap_queue.c | 200 +++++++++++++++++++++++------------ drivers/s390/crypto/vfio_ap_ops.c | 30 ++++-- drivers/s390/crypto/zcrypt_api.c | 16 +-- drivers/s390/crypto/zcrypt_cex4.c | 31 +++--- lib/raid6/s390vx.uc | 2 +- 50 files changed, 517 insertions(+), 455 deletions(-)