Hi Linus, please pull more s390 updates for the 6.14 merge window. There is a trivial conflict that was resolved in linux-next [1] in: arch/s390/Kconfig between commit: 008071917dfc ("s390/crc32: expose CRC32 functions through lib") from your tree and commit: 3bcc8a1af581 ("s390/sclp: Initialize sclp subsystem via arch_cpu_finalize= _init()") from the s390 tree: diff --cc arch/s390/Kconfig index 6e9545d8b0c7,f49ca2b485f6..000000000000 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@@ -72,7 -78,7 +78,8 @@@ config S39 select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM select ARCH_ENABLE_MEMORY_HOTREMOVE select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 + select ARCH_HAS_CPU_FINALIZE_INIT + select ARCH_HAS_CRC32 select ARCH_HAS_CURRENT_STACK_POINTER select ARCH_HAS_DEBUG_VIRTUAL select ARCH_HAS_DEBUG_VM_PGTABLE 1. https://lore.kernel.org/linux-next/20250129115932.7950d88d@xxxxxxxxxxxxxxxx/ Thanks, Alexander The following changes since commit 26701574cee6777f867f89b4a5c667817e1ee0dd: s390/futex: Fix FUTEX_OP_ANDN implementation (2025-01-15 17:12:31 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.14-2 for you to fetch changes up to 87f017d0792befa83722b99cb21f9c8f574cd71d: s390/vmlogrdr: Use array instead of string initializer (2025-01-29 13:44:21 +0100) ---------------------------------------------------------------- more s390 updates for 6.14 merge window - The rework that uncoupled physical and virtual address spaces inadvertently prevented KASAN shadow mappings from using large pages. Restore large page mappings for KASAN shadows - Add decompressor routine physmem_alloc() that may fail, unlike physmem_alloc_or_die(). This allows callers to implement fallback paths - Allow falling back from large pages to smaller pages (1MB or 4KB) if the allocation of 2GB pages in the decompressor can not be fulfilled - Add to the decompressor boot print support of "%%" format string, width and padding hadnling, length modifiers and decimal conversion specifiers - Add to the decompressor message severity levels similar to kernel ones. Support command-line options that control console output verbosity - Replaces boot_printk() calls with appropriate loglevel- specific helpers such as boot_emerg(), boot_warn(), and boot_debug(). - Collect all boot messages into a ring buffer independent of the current log level. This is particularly useful for early crash analysis - If 'earlyprintk' command line parameter is not specified, store decompressor boot messages in a ring buffer to be printed later by the kernel, once the console driver is registered - Add 'bootdebug' command line parameter to enable printing of decompressor debug messages when needed. That parameters allows message supressing and filtering - Dump boot messages on a decompressor crash, but only if 'bootdebug' command line parameter is enabled - When CONFIG_PRINTK_TIME is enabled, add timestamps to boot messages in the same format as regular printk() - Dump physical memory tracking information on boot: online ranges, reserved areas and vmem allocations - Dump virtual memory layout and randomization details - Improve decompression error reporting and dump the message ring buffer in case the boot failed and system halted - Add an exception handler which handles exceptions when FPU control register is attempted to be set to an invalid value. Remove '.fixup' section as result of this change - Use 'A', 'O', and 'R' inline assembly format flags, which allows recent Clang compilers to generate better FPU code - Rework uaccess code so it reads better and generates more efficient code - Cleanup futex inline assembly code - Disable KMSAN instrumention for futex inline assemblies, which contain dereferenced user pointers. Otherwise, shadows for the user pointers would be accessed - PFs which are not initially configured but in standby create only a single-function PCI domain. If they are configured later on, sibling PFs and their child VFs will not be added to their PCI domain breaking SR-IOV expectations. Fix that by allowing initially configured but in standby PFs create multi-function PCI domains - Add '-std=gnu11' to decompressor and purgatory CFLAGS to avoid compile errors caused by kernel's own definitions of 'bool', 'false', and 'true' conflicting with the C23 reserved keywords - Fix sclp subsystem failure when a sclp console is not present - Fix misuse of non-NULL terminated strings in vmlogrdr driver - Various other small improvements, cleanups and fixes ---------------------------------------------------------------- Heiko Carstens (24): s390/fpu: Add fpc exception handler / remove fixup section again s390/extable: Replace open-coded sfpc inline assembly with fpu_sfpc() s390: Rename GCC_ASM_FLAG_OUTPUT_BROKEN to CC_ASM_FLAG_OUTPUT_BROKEN s390: Introduce CC_HAS_ASM_AOR_FORMAT_FLAGS Kconfig option s390/fpu: Use CONFIG_CC_HAS_ASM_AOR_FORMAT_FLAGS instead of CONFIG_CC_IS_CLANG s390/extable: Rename EX_TABLE_UA_STORE to EX_TABLE_UA_FAULT s390/uaccess: Implement __get_kernel_nofault()/__put_kernel_nofault() with mvc s390/uaccess: Use asm goto for __mvc_kernel_nofault() s390/uaccess: Move put_user() / __put_user() close to put_user() asm code s390/uaccess: Remove __put_user_fn()/__get_user_fn() wrappers s390/uaccess: Cleanup noinstr __put_user()/__get_user() inline assembly constraints s390/uaccess: Replace EX_TABLE_UA_LOAD_MEM exception handling s390/uaccess: Remove usage of the oac specifier s390/uaccess: Use asm goto for put_user()/get_user() s390/uaccess: Remove INLINE_COPY_FROM_USER and INLINE_COPY_TO_USER s390/futex: Generate futex atomic op functions s390/futex: Cleanup futex_atomic_cmpxchg_inatomic() s390/uaccess: Rename get_put_user_noinstr_attributes to uaccess_kmsan_or_inline s390/futex: Avoid KMSAN instrumention for user pointers s390/bitops: Use correct constraint for arch_test_bit() inline assembly s390/tools: Use array instead of string initializer s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init() s390/vmlogrdr: Use internal_name for error messages s390/vmlogrdr: Use array instead of string initializer Nathan Chancellor (1): s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS Niklas Schnelle (1): s390/pci: Fix SR-IOV for PFs initially in standby Vasily Gorbik (27): s390/mm: Allow large pages for KASAN shadow mapping s390/boot: Rename physmem_alloc_top_down() to physmem_alloc_or_die() s390/boot: Add physmem_alloc() s390/boot: Allow KASAN mapping to fallback to small pages s390/boot: Add %% support to boot_printk() s390/boot: Add length modifiers to boot_printk() s390/boot: Add field width and padding handling to boot_printk() s390/boot: Add decimal conversion specifiers to boot_printk() s390/boot: Add support for boot messages loglevels s390/boot: Replace boot_printk() with loglevel-specific helpers s390/boot: Use decimal format specifiers in boot messages s390/boot: Introduce ring buffer for boot messages s390/boot: Make boot_printk() return int s390/boot: Defer boot messages when earlyprintk is not enabled s390/boot: Add bootdebug option to control debug messages s390/boot: Add prefix filtering to bootdebug messages s390/boot: Dump message ring buffer on crash with bootdebug s390/boot: Add timestamps to early boot messages s390: Use pr_info for "KernelAddressSanitizer initialized" message s390/boot: Add physmem tracking debug support s390/boot: Move command line parsing earlier s390/boot: Add vmem debugging support s390/boot: Add startup debugging support s390/boot: Improve decompression error reporting s390: Optimize __pa/__va when RANDOMIZE_IDENTITY_BASE is off s390/ipl_report: Remove unused 'size' variable s390/vmem: Fix null-pointer-arithmetic warning in vmem_map_init() arch/s390/Kconfig | 9 +- arch/s390/Makefile | 2 +- arch/s390/boot/als.c | 10 +- arch/s390/boot/boot.h | 26 +- arch/s390/boot/decompressor.c | 12 +- arch/s390/boot/ipl_parm.c | 20 +- arch/s390/boot/ipl_report.c | 3 +- arch/s390/boot/kaslr.c | 4 +- arch/s390/boot/pgm_check_info.c | 53 ++-- arch/s390/boot/physmem_info.c | 103 +++++-- arch/s390/boot/printk.c | 224 ++++++++++++-- arch/s390/boot/startup.c | 47 ++- arch/s390/boot/vmem.c | 135 +++++++-- arch/s390/include/asm/asm-extable.h | 14 +- arch/s390/include/asm/asm.h | 2 +- arch/s390/include/asm/bitops.h | 2 +- arch/s390/include/asm/boot_data.h | 51 ++++ arch/s390/include/asm/fpu-insn.h | 199 ++++++------- arch/s390/include/asm/futex.h | 107 ++++--- arch/s390/include/asm/page.h | 4 + arch/s390/include/asm/physmem_info.h | 4 +- arch/s390/include/asm/sclp.h | 1 + arch/s390/include/asm/uaccess.h | 562 +++++++++++++++++++---------------- arch/s390/kernel/early.c | 3 +- arch/s390/kernel/setup.c | 37 ++- arch/s390/kernel/vmlinux.lds.S | 1 - arch/s390/lib/uaccess.c | 90 ------ arch/s390/mm/extable.c | 30 +- arch/s390/mm/vmem.c | 2 +- arch/s390/pci/pci_bus.c | 1 - arch/s390/purgatory/Makefile | 2 +- arch/s390/tools/gen_opcode_table.c | 27 +- drivers/s390/char/sclp.c | 12 +- drivers/s390/char/vmlogrdr.c | 8 +- 34 files changed, 1124 insertions(+), 683 deletions(-)