Commit 66ec24c5d7a0 for kernel

commit 66ec24c5d7a047f5b06ee1deb1d0a2869b1791bd
Merge: 388b607d107c 101782f8945a
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Aug 23 10:26:44 2026 -0700

    Merge tag 's390-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

    Pull s390 updates from Vasily Gorbik:

     - Add a cpuidle driver with polling and enabled wait states using the
       existing CPU idle infrastructure and idle governor to improve latency
       for frequent sleep/wakeup cycles. Remove the obsolete tick delay
       heuristic and generic arch_needs_cpu() hook. Add the corresponding
       driver entry to MAINTAINERS

     - Add kCFI support using the generic support provided by Clang

     - Enable Clang CONTEXT_ANALYSIS for various architecture code and for
       char, PCI, CIO and virtio drivers. Add required lock annotations,
       exclude unsupported mm helpers and remove conditional PCI locking

     - Fix secure storage access exception handling and reintroduce
       DCACHE_WORD_ACCESS previously removed as a workaround

     - Fix cpum_cf perf crashes when CPUs are brought online while per-task
       events are active. Allocate and remove per-CPU counter data from CPU
       hotplug callbacks

     - Fix a deadlock when an s390dbf debug area is unregistered while one
       of its debugfs files is being written to

     - Fix MVIY_PERCPU() with binutils older than 2.39, where an assembler
       macro silently omitted an instruction needed to repair interrupted
       operations after CPU migration

     - Remove/replace cond_resched() calls which are no-ops with the
       supported s390 preemption models

     - Fix AP queue depth and maximum message length decoding according to
       the architecture. Current hardware is not affected, but future
       hardware could report values which were handled incorrectly

     - Reflect the configured CPU state in cpu_enabled_mask so deconfigured
       CPUs are not presented as available for onlining

     - Restore the vDSO GNU_EH_FRAME program header which was lost when the
       build switched to direct linker invocation, and mark it read-only

     - Add SCLP action qualifiers used by Spyre for card initialization,
       recoverable error and telemetry reporting

     - Move KMSAN interrupt flag helpers out of line to fix
       -Wstatic-in-inline build warnings

     - Use level-specific page table entry accessors for hugetlb entries and
       ptep_get() when accessing crashed kernel memory in kdump

     - Make forced AP bus rescans killable so that a user process blocked
       behind an ongoing scan can still be terminated with SIGKILL

     - Rework pkey ioctl error paths to remove duplicated cleanup code and
       avoid freeing error pointers

     - Allow the protected guest SWIOTLB buffer to be allocated outside the
       first 2GB. Also enable dynamic SWIOTLB growth and the coherent atomic
       pool fallback to improve I/O behavior when the initial pool is
       exhausted

     - Add program check statistics and spinlock contention tracepoints.
       Increase the lockdep chain capacity to keep lockdep enabled for
       complex code paths such as btrfs

     - Simplify IPL, trap and syscall code and remove the obsolete
       unistd_32.h generation entry

    * tag 's390-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (59 commits)
      s390/percpu: Fix MVIY_PERCPU() with older binutils
      s390/debug: Fix deadlock during unregister
      s390/cpum_cf: Handle CPU hotplug via prepare/dead callbacks
      s390: Enable CONTEXT_ANALYSIS for various directories
      s390/mm: Add __context_unsafe() attribute to gmap helper functions
      s390/mm: Add __context_unsafe() attribute to do_secure_storage_access()
      s390/sysinfo: Add context analysis attributes
      s390/irqflags: Add out-of-line definitions of arch_local_irq_*() for KMSAN
      s390/virtio: Enable CONTEXT_ANALYSIS
      s390/cio: Enable CONTEXT_ANALYSIS
      s390/vfio_ccw: Add __must_hold() attribute to vfio_ccw_sch_quiesce()
      s390/pci: Enable CONTEXT_ANALYSIS
      s390/pci: Rework __zpci_event_availability() to remove conditional locking
      s390/pci: Rework __zpci_event_error() to remove conditional locking
      s390/char: Enable CONTEXT_ANALYSIS
      s390/con3215: Add __must_hold() attribute to raw3215_make_room()
      s390/ap: Fix MAPML computation
      s390/cio: Remove cond_resched() calls
      s390: Remove cond_resched() calls
      KVM: s390: Remove cond_resched() calls
      ...

diff --cc arch/s390/Kconfig
index 7cb02dfaf522,6960b398ed06..d8c3d5860f36
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@@ -273,9 -279,10 +279,11 @@@ config S39
  	select PCI_MSI			if PCI
  	select PCI_MSI_ARCH_FALLBACKS	if PCI_MSI
  	select PCI_QUIRKS		if PCI
 +	select HAS_SEPARATE_PREEMPT_RESCHED_BITS
  	select SPARSE_IRQ
  	select SWIOTLB
+ 	select SWIOTLB_DYNAMIC
+ 	select DMA_COHERENT_POOL
  	select SYSCTL_EXCEPTION_TRACE
  	select SYSTEM_DATA_VERIFICATION if KEXEC_SIG
  	select THREAD_INFO_IN_TASK
diff --cc arch/s390/kernel/syscall.c
index 4ac80e2478d7,b6c643756a7c..bcc0b76bd868
--- a/arch/s390/kernel/syscall.c
+++ b/arch/s390/kernel/syscall.c
@@@ -93,13 -93,12 +93,13 @@@ SYSCALL_DEFINE0(ni_syscall
  	return -ENOSYS;
  }

- void noinstr __do_syscall(struct pt_regs *regs, int per_trap)
+ void noinstr __do_syscall(struct pt_regs *regs, unsigned long flags)
  {
  	unsigned long nr;
 +	bool permit;
 +
 +	enter_from_user_mode_randomize_stack(regs);

 -	enter_from_user_mode(regs);
 -	add_random_kstack_offset();
  	regs->psw = get_lowcore()->svc_old_psw;
  	regs->int_code = get_lowcore()->svc_int_code;
  	update_timer_sys();
diff --cc drivers/s390/cio/vfio_ccw_private.h
index 3bd0171d38d0,8db29519dbfd..fd92b41af656
--- a/drivers/s390/cio/vfio_ccw_private.h
+++ b/drivers/s390/cio/vfio_ccw_private.h
@@@ -131,13 -125,12 +131,14 @@@ struct vfio_ccw_private
  	struct eventfd_ctx	*req_trigger;
  	struct work_struct	io_work;
  	struct work_struct	crw_work;
 +	struct work_struct	notoper_work;
  } __aligned(8);

- int vfio_ccw_sch_quiesce(struct subchannel *sch);
+ int vfio_ccw_sch_quiesce(struct subchannel *sch)
+ 	__must_hold(&sch->lock);
  void vfio_ccw_sch_io_todo(struct work_struct *work);
  void vfio_ccw_crw_todo(struct work_struct *work);
 +void vfio_ccw_notoper_todo(struct work_struct *work);

  extern struct mdev_driver vfio_ccw_mdev_driver;