]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Merge tag 's390-6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 29 Mar 2025 18:59:43 +0000 (11:59 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 29 Mar 2025 18:59:43 +0000 (11:59 -0700)
Pull s390 updates from Vasily Gorbik:

 - Add sorting of mcount locations at build time

 - Rework uaccess functions with C exception handling to shorten inline
   assembly size and enable full inlining. This yields near-optimal code
   for small constant copies with a ~40kb kernel size increase

 - Add support for a configurable STRICT_MM_TYPECHECKS which allows to
   generate better code, but also allows to have type checking for debug
   builds

 - Optimize get_lowcore() for common callers with alternatives that
   nearly revert to the pre-relocated lowcore code, while also slightly
   reducing syscall entry and exit time

 - Convert MACHINE_HAS_* checks for single facility tests into cpu_has_*
   style macros that call test_facility(), and for features with
   additional conditions, add a new ALT_TYPE_FEATURE alternative to
   provide a static branch via alternative patching. Also, move machine
   feature detection to the decompressor for early patching and add
   debugging functionality to easily show which alternatives are patched

 - Add exception table support to early boot / startup code to get rid
   of the open coded exception handling

 - Use asm_inline for all inline assemblies with EX_TABLE or ALTERNATIVE
   to ensure correct inlining and unrolling decisions

 - Remove 2k page table leftovers now that s390 has been switched to
   always allocate 4k page tables

 - Split kfence pool into 4k mappings in arch_kfence_init_pool() and
   remove the architecture-specific kfence_split_mapping()

 - Use READ_ONCE_NOCHECK() in regs_get_kernel_stack_nth() to silence
   spurious KASAN warnings from opportunistic ftrace argument tracing

 - Force __atomic_add_const() variants on s390 to always return void,
   ensuring compile errors for improper usage

 - Remove s390's ioremap_wt() and pgprot_writethrough() due to
   mismatched semantics and lack of known users, relying on asm-generic
   fallbacks

 - Signal eventfd in vfio-ap to notify userspace when the guest AP
   configuration changes, including during mdev removal

 - Convert mdev_types from an array to a pointer in vfio-ccw and vfio-ap
   drivers to avoid fake flex array confusion

 - Cleanup trap code

 - Remove references to the outdated linux390@de.ibm.com address

 - Other various small fixes and improvements all over the code

* tag 's390-6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (78 commits)
  s390: Use inline qualifier for all EX_TABLE and ALTERNATIVE inline assemblies
  s390/kfence: Split kfence pool into 4k mappings in arch_kfence_init_pool()
  s390/ptrace: Avoid KASAN false positives in regs_get_kernel_stack_nth()
  s390/boot: Ignore vmlinux.map
  s390/sysctl: Remove "vm/allocate_pgste" sysctl
  s390: Remove 2k vs 4k page table leftovers
  s390/tlb: Use mm_has_pgste() instead of mm_alloc_pgste()
  s390/lowcore: Use lghi instead llilh to clear register
  s390/syscall: Merge __do_syscall() and do_syscall()
  s390/spinlock: Implement SPINLOCK_LOCKVAL with inline assembly
  s390/smp: Implement raw_smp_processor_id() with inline assembly
  s390/current: Implement current with inline assembly
  s390/lowcore: Use inline qualifier for get_lowcore() inline assembly
  s390: Move s390 sysctls into their own file under arch/s390
  s390/syscall: Simplify syscall_get_arguments()
  s390/vfio-ap: Notify userspace that guest's AP config changed when mdev removed
  s390: Remove ioremap_wt() and pgprot_writethrough()
  s390/mm: Add configurable STRICT_MM_TYPECHECKS
  s390/mm: Convert pgste_val() into function
  s390/mm: Convert pgprot_val() into function
  ...

17 files changed:
1  2 
arch/s390/Kconfig
arch/s390/configs/debug_defconfig
arch/s390/include/asm/hugetlb.h
arch/s390/kernel/ftrace.c
arch/s390/kernel/irq.c
arch/s390/kernel/processor.c
arch/s390/kernel/time.c
arch/s390/kernel/traps.c
arch/s390/kvm/interrupt.c
arch/s390/kvm/kvm-s390.c
arch/s390/mm/gmap.c
arch/s390/mm/hugetlbpage.c
arch/s390/pci/pci.c
arch/s390/pci/pci_clp.c
arch/s390/pci/pci_mmio.c
drivers/s390/crypto/ap_bus.c
kernel/sysctl.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index b746213d3110c95a3108291438e8a7414a94c0d8,9705929d256f41f802d3aaed61ccabfa8461831f..19687dab32f7ab89891348ab509cd0cefa9c0328
@@@ -283,12 -257,12 +257,12 @@@ static void __init test_monitor_call(vo
  
        if (!IS_ENABLED(CONFIG_BUG))
                return;
-       asm volatile(
+       asm_inline volatile(
                "       mc      0,0\n"
 -              "0:     xgr     %0,%0\n"
 +              "0:     lhi     %[val],0\n"
                "1:\n"
 -              EX_TABLE(0b,1b)
 -              : "+d" (val));
 +              EX_TABLE(0b, 1b)
 +              : [val] "+d" (val));
        if (!val)
                panic("Monitor call doesn't work!\n");
  }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 62feb2c639d56af42055989ddcf0ea6666d3d622,20cb8d272e5677d40bbfccb321eda441003b59d5..1564cd7e3f598ac31a66e0402db1f8b53197629e
@@@ -2324,9 -2325,10 +2325,9 @@@ static inline int __init ap_async_init(
         * Setup the high resolution poll timer.
         * If we are running under z/VM adjust polling to z/VM polling rate.
         */
-       if (MACHINE_IS_VM)
+       if (machine_is_vm())
                poll_high_timeout = 1500000;
 -      hrtimer_init(&ap_poll_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
 -      ap_poll_timer.function = ap_poll_timeout;
 +      hrtimer_setup(&ap_poll_timer, ap_poll_timeout, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
  
        queue_work(system_long_wq, &ap_scan_bus_work);
  
diff --cc kernel/sysctl.c
index 88b83fb504c8bffa46a0886425fdfb649b6fc86e,6c70fb3b2376f672044bd05660c42e4b47003f85..3b7a7308e35b093dfe1bddf971c7e3a59826d705
@@@ -1828,15 -1888,15 +1819,6 @@@ static const struct ctl_table kern_tabl
                .proc_handler   = proc_dointvec,
        },
  #endif
- #if defined(CONFIG_S390) && defined(CONFIG_SMP)
 -#if   defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86)
--      {
-               .procname       = "spin_retry",
-               .data           = &spin_retry,
-               .maxlen         = sizeof (int),
 -              .procname       = "acpi_video_flags",
 -              .data           = &acpi_realmode_flags,
 -              .maxlen         = sizeof (unsigned long),
--              .mode           = 0644,
-               .proc_handler   = proc_dointvec,
 -              .proc_handler   = proc_doulongvec_minmax,
--      },
--#endif
  #ifdef CONFIG_SYSCTL_ARCH_UNALIGN_NO_WARN
        {
                .procname       = "ignore-unaligned-usertrap",