Latest Linux kernel releases

  27.07 6.16 (merge, pull)
  24.07 6.15.8, 6.12.40, 6.6.100, 6.1.147
  17.07 5.15.189, 5.10.240, 5.4.296

Significant pull requests for mainline kernel

 
1 Aug 2025: power-supply changes for 6.17 [+ + +]
Subject: [GIT PULL] power-supply changes for 6.17
MIME-Version: 1.0

Hi Linus,

Some more power-supply core changes flow through the platform tree,
which needed some improvements in the power-supply extension API. No
merge conflicts have been found in linux-next and everything from my
tree has been in there for at least 3 weeks.

power supply and reset changes for the 6.17 series

 * power-supply core
  - battery-info: replace any DT specific bits with fwnode usage
  - replace any device-tree code with generic fwnode based handling
 * power-supply drivers
  - ug3105_battery: use battery-info API
  - qcom_battmgr: report capacity
  - qcom_battmgr: support LiPo battery reporting
  - add missing missing power-supply ref to a bunch of DT bindings
  - update drivers regarding pm_runtime_autosuspend() usage
  - misc. minor fixes and cleanups
 * reset drivers
  - misc. minor cleanups

 
31 Jul 2025: HID for 6.17 merge window [+ + +]
once you have time in between birthday party drinks, please pull from

nus-2025073101

to receive HID subsystem queue for 6.17 merge window, namely:

=3D=3D=3D=3D=3D
- hardening of HID core parser against conversion to 0 bits in=20
  s32ton() by buggy/malicious devices (Alan Stern)

- fix for potential NULL pointer dereference in hid-apple that could=20
  be caused by malicious device with APPLE_MAGIC_BACKLIGHT quirk present=20
  triggering overflow in data field (Qasim Ijaz)

- support for Wake-on-touch in intel-thc (Even Xu)

- support for "Input max input size control" and "Input interrupt delay"
  I2C features in order to improve compatibility of THC devices with
  legacy HIDI2C touch devices (Even Xu)

- support for Touch Bars on x86 MacBook Pros (Kerem Karabay)

- support for XP-PEN Artist 22R Pro (Joshua Goins)

- third party trackpart support for MacBookPro15,1 (Aditya Garg)
   =20
- Apple Magic Keyboard A311[89] USB-C support (Aditya Garg, Grigorii =20
  Sokoli

- support for operating modes in amd-sfh (Basavaraj Natikar)

- avoid setting up battery timer for Apple and Magicmouse devices=20
  without battery (Aditya Garg)

- fix for behavior of the hid-mcp2221 driver for !CONFIG_IIO cases
  (Heiko Schocher)

- other assorted fixups and device ID additions
=3D=3D=3D=3D=3D

Thanks.

31 Jul 2025: hwmon updates for v6.17 [+ + +]


Thanks,
Guenter
------

hwmon updates for v6.17

* Updated chip support in existing drivers

  - ina238: Support for INA228

  - pmbus/tps53679: Support for TPS53685

  - pmbus/adp1050: Support for adp1051, adp1055 and ltp8800

  - corsair-psu: Support for HX1200i Series 2025

  - pmbus/isl68137: Support for RAA229621

  - asus-ec-sensors: Support for ProArt X870E-CREATOR WIFI and

* Other notable changes

  - adt7475: Support for #pwm-cells = <3>

  - amc6821: Cooling device support

  - emc2305: Support for PWM frequency, polarity and output

  - Add missing compatible entries to various devicetree bindings

* Various other minor fixes and improvements

31 Jul 2025: media updates [+ + +]

a/v6.17-1

For:

- v4l2 core: sub-device framework routing improvements;
- v4l2 core: NV12M tiled variants added to v4l2_format_info;
- v4l2 core: some fixes at control handler freeing logic;
- v4l2 core: fixed H264 SEPARATE_COLOUR_PLANE check;
- new staging driver: Intel IPU7 PCI;
- Rockchip video decoder driver got promoted from staging;
- iris: added HEVC/VP9 encoder/decoder support;
- vsp1: driver has gained Renesas VSPX support;
- uvc: switched to vb2 ioctl helpers;
- uvc: added MSXU 1.5 metadata support;
- atomisp: GC0310 sensor driver cleanups in preparation
  for moving it out of staging;
- Lots of cleanup, fixes and improvements.

Regards,
Mauro

---


---

[GIT PULL for v6.17] media updates

31 Jul 2025: tracing tools: Updates for v6.17 [+ + +]

tracing tools changes for 6.17:

- Introduce enum timerlat_tracing_mode

  Now that BPF based sampling has been added to timerlat, add an enum to
  represent which mode timerlat is running in.

- Add action on timelat threshold feature

  A new option, --on-threshold, is added, taking an argument
  that further specifies the action. Actions added in this patch are:

  - trace[,file=<filename>]: Saves tracefs buffer, optionally taking a
          filename.
  - signal,num=<sig>,pid=<pid>: Sends signal to process. "parent" might
          be specified instead of number to send signal to parent process.
  - shell,command=<command>: Execute shell command.

- Allow resuming tracing in timerlat bpf

  rtla-timerlat BPF program uses a global variable stored in a .bss section to
  store whether tracing has been stopped. Map it to allow it to resume tracing
  after it has been stopped.

- Add continue action to timerlat

  Introduce option to resume tracing after a latency threshold overflow.  The
  option is implemented as an action named "continue".

- Add action on end feature to timerlat

  Implement actions on end next to actions on threshold. A new option,
  --on-end is added, parallel to --on-threshold. Instead of being executed
  whenever a latency threshold is reached, it is executed at the end of the
  measurement.

- Have rtla tests check output with grep

  Add argument to the check command in the test suite that takes a regular
  expression that the output of rtla command is checked against. This allows
  testing for specific information in rtla output in addition to checking the
  return value.

- Add tests for timerlat actions

- Update the documentation for the new features




trace-tools-v6.17

31 Jul 2025: unwind_deferred: Inclusion for v6.17 [+ + +]

Deferred unwind changes for 6.17

This is the core infrastructure for the deferred unwinder that is required
for sframes[1]. Several other patch series is based on this work although
those patch series are not dependent on each other. In order to simplify the
development, having this core series upstream will allow the other series to
be worked on in parallel. The other series are:

- The two patches to implement x86:
  https://lore.kernel.org/linux-trace-kernel/[email protected]/
  https://lore.kernel.org/linux-trace-kernel/[email protected]/

- The s390 work:
  https://lore.kernel.org/linux-trace-kernel/[email protected]/

- The perf work:
  https://lore.kernel.org/linux-trace-kernel/[email protected]/

- The ftrace work:
  https://lore.kernel.org/linux-trace-kernel/[email protected]/

- The sframe work:
  https://lore.kernel.org/linux-trace-kernel/[email protected]/

And more is on the way.

The core infrastructure adds the following in kernel APIs:

- int unwind_user_faultable(struct unwind_stacktrace *trace);

    Performs a user space stack trace that may fault user pages in.

- int unwind_deferred_init(struct unwind_work *work, unwind_callback_t func);

    Allows a tracer to register with the unwind deferred infrastructure.

- int unwind_deferred_request(struct unwind_work *work, u64 *cookie);

    Used when a tracer request a deferred trace. Can be called from interrupt
    or NMI context.

- void unwind_deferred_cancel(struct unwind_work *work);

    Called by a tracer to unregister from the deferred unwind infrastructure.

- void unwind_deferred_task_exit(struct task_struct *task);

    Called by task exit code to flush any pending unwind requests.

- void unwind_task_init(struct task_struct *task);

    Called by do_fork() to initialize the task struct for the deferred
    unwinder.

- void unwind_task_free(struct task_struct *task);

    Called by do_exit() to free up any resources used by the deferred
    unwinder.

None of the above is actually compiled unless an architecture enables it,
which none currently do.

[1] https://sourceware.org/binutils/wiki/sframe




trace-deferred-unwind-v6.17

31 Jul 2025: tracing: Updates for v6.17 [+ + +]

tracing changes for 6.17

- Deprecate auto-mounting tracefs to /sys/kernel/debug/tracing

  When tracefs was first introduced back in 2014, the directory
  /sys/kernel/tracing was added and is the designated location to mount
  tracefs. To keep backward compatibility, tracefs was auto-mounted in
  /sys/kernel/debug/tracing as well.

  All distros now mount tracefs on /sys/kernel/tracing. Having it seen in two
  different locations has lead to various issues and inconsistencies.

  The VFS folks have to also maintain debugfs_create_automount() for this
  single user.

  It's been over 10 years. Tooling and scripts should start replacing the
  debugfs location with the tracefs one. The reason tracefs was created in the
  first place was to allow access to the tracing facilities without the need
  to configure debugfs into the kernel. Using tracefs should now be more
  robust.

  A new config is created: CONFIG_TRACEFS_AUTOMOUNT_DEPRECATED
  which is default y, so that the kernel is still built with the automount.
  This config allows those that want to remove the automount from debugfs to
  do so.

  When tracefs is accessed from /sys/kernel/debug/tracing, the following
  printk is triggerd:

   pr_warn("NOTICE: Automounting of tracing to debugfs is deprecated and will be removed in 2030\n");

  This gives users another 5 years to fix their scripts.

- Use queue_rcu_work() instead of call_rcu() for freeing event filters

  The number of filters to be free can be many depending on the number of
  events within an event system. Freeing them from softirq context can
  potentially cause undesired latency. Use the RCU workqueue to free them
  instead.

- Remove pointless memory barriers in latency code

  Memory barriers were added to some of the latency code a long time ago with
  the idea of "making them visible", but that's not what memory barriers are
  for. They are to synchronize access between different variables. There was
  no synchronization here making them pointless.

- Remove "__attribute__()" from the type field of event format

  When LLVM is used to compile the kernel with CONFIG_DEBUG_INFO_BTF=y and
  PAHOLE_HAS_BTF_TAG=y, some of the format fields get expanded with the
  following:

    field:const char * filename;      offset:24;      size:8; signed:0;

  Turns into:

    field:const char __attribute__((btf_type_tag("user"))) * filename;      offset:24;      size:8; signed:0;

  This confuses parsers. Add code to strip these tags from the strings.

- Add eprobe config option CONFIG_EPROBE_EVENTS

  Eprobes were added back in 5.15 but were only enabled when another probe was
  enabled (kprobe, fprobe, uprobe, etc). The eprobes had no config option
  of their own. Add one as they should be a separate entity.

  It's default y to keep with the old kernels but still has dependencies on
  TRACING and HAVE_REGS_AND_STACK_ACCESS_API.

- Add eprobe documentation

  When eprobes were added back in 5.15 no documentation was added to describe
  them. This needs to be rectified.

- Replace open coded cpumask_next_wrap() in move_to_next_cpu()

- Have preemptirq_delay_run() use off-stack CPU mask

- Remove obsolete comment about pelt_cfs event

  DECLARE_TRACE() appends "_tp" to trace events now, but the comment above
  pelt_cfs still mentioned appending it manually.

- Remove EVENT_FILE_FL_SOFT_MODE flag

  The SOFT_MODE flag was required when the soft enabling and disabling of
  trace events was first introduced. But there was a bug with this approach
  as it only worked for a single instance. When multiple users required soft
  disabling and disabling the code was changed to have a ref count. The
  SOFT_MODE flag is now set iff the ref count is non zero. This is redundant
  and just reading the ref count is good enough.

- Fix typo in comment




trace-v6.17

31 Jul 2025: jfs updates for 6.17 [+ + +]
Fixes and cleanups for JFS filesystem

 
30 Jul 2025: sched_ext: Changes for v6.17 [+ + +]
sched_ext: Changes for v6.17

- Add support for cgroup "cpu.max" interface.

- Code organization cleanup so that ext_idle.c doesn't depend on the
  source-file-inclusion build method of sched/.

- Drop UP paths in accordance with sched core changes.

- Documentation and other misc changes.

30 Jul 2025: cgroup: Changes for v6.17 [+ + +]
cgroup: Changes for v6.17

- Allow css_rstat_updated() in NMI context to enable memory accounting for
  allocations in NMI context.

- /proc/cgroups doesn't contain useful information for cgroup2 and was
  updated to only show v1 controllers. This unfortunately broke something in
  the wild. Add an option to bring back the old behavior to ease transition.

- selftest updates and other cleanups.

30 Jul 2025: workqueue: Changes for v6.17 [+ + +]
workqueue: Changes for v6.17

- Prepare for defaulting to unbound workqueue. A separate branch was created
  to ease pulling in from other trees but none of the conversions have
  landed yet.

- Memory allocation profiling support added.

- Misc changes.

30 Jul 2025: MM updates for 6.17-rc1 [+ + +]
window.

I'm planning a second (significantly smaller) batch for next week.  For
somewhat late-arriving material which might benefit from a little more
test and review time.

As usual, many cleanups.  The below blurbiage describes 42 patchsets. 
21 of those are partially or fully cleanup work.  "cleans up",
"cleanup", "maintainability", "rationalizes", etc.  I never knew the MM
code was so dirty.

Thanks!


Conflicts which I'm presently seeing, along with their linux-next
resolutions:

include/linux/proc_fs.h, vs fs-next tree:
https://lkml.kernel.org/r/[email protected]



Forthcoming conflicts of which I am aware are:

.mailmap, vs riscv-fixes tree:
https://lkml.kernel.org/r/[email protected]

kernel/panic.c, vs sysctl tree:
https://lkml.kernel.org/r/[email protected]

fs/proc/page.c, vs slab tree:
https://lkml.kernel.org/r/[email protected]

lib/Kconfig.debug, vs paulmck tree:
https://lkml.kernel.org/r/[email protected]



Summary of significant series in this pull request:

- The 4 patch series "mm: ksm: prevent KSM from breaking merging of new
  VMAs" from Lorenzo Stoakes addresses an issue with KSM's
  PR_SET_MEMORY_MERGE mode: newly mapped VMAs were not eligible for
  merging with existing adjacent VMAs.

- The 4 patch series "mm/damon: introduce DAMON_STAT for simple and
  practical access monitoring" from SeongJae Park adds a new kernel module
  which simplifies the setup and usage of DAMON in production
  environments.

- The 6 patch series "stop passing a writeback_control to swap/shmem
  writeout" from Christoph Hellwig is a cleanup to the writeback code
  which removes a couple of pointers from struct writeback_control.

- The 7 patch series "drivers/base/node.c: optimization and cleanups"
  from Donet Tom contains largely uncorrelated cleanups to the NUMA node
  setup and management code.

- The 4 patch series "mm: userfaultfd: assorted fixes and cleanups" from
  Tal Zussman does some maintenance work on the userfaultfd code.

- The 5 patch series "Readahead tweaks for larger folios" from Ryan
  Roberts implements some tuneups for pagecache readahead when it is
  reading into order>0 folios.

- The 4 patch series "selftests/mm: Tweaks to the cow test" from Mark
  Brown provides some cleanups and consistency improvements to the
  selftests code.

- The 4 patch series "Optimize mremap() for large folios" from Dev Jain
  does that.  A 37% reduction in execution time was measured in a
  memset+mremap+munmap microbenchmark.

- The 5 patch series "Remove zero_user()" from Matthew Wilcox expunges
  zero_user() in favor of the more modern memzero_page().

- The 3 patch series "mm/huge_memory: vmf_insert_folio_*() and
  vmf_insert_pfn_pud() fixes" from David Hildenbrand addresses some warts
  which David noticed in the huge page code.  These were not known to be
  causing any issues at this time.

- The 3 patch series "mm/damon: use alloc_migrate_target() for
  DAMOS_MIGRATE_{HOT,COLD" from SeongJae Park provides some cleanup and
  consolidation work in DAMON.

- The 3 patch series "use vm_flags_t consistently" from Lorenzo Stoakes
  uses vm_flags_t in places where we were inappropriately using other
  types.

- The 3 patch series "mm/memfd: Reserve hugetlb folios before
  allocation" from Vivek Kasireddy increases the reliability of large page
  allocation in the memfd code.

- The 14 patch series "mm: Remove pXX_devmap page table bit and pfn_t
  type" from Alistair Popple removes several now-unneeded PFN_* flags.

- The 5 patch series "mm/damon: decouple sysfs from core" from SeongJae
  Park implememnts some cleanup and maintainability work in the DAMON
  sysfs layer.

- The 5 patch series "madvise cleanup" from Lorenzo Stoakes does quite a
  lot of cleanup/maintenance work in the madvise() code.

- The 4 patch series "madvise anon_name cleanups" from Vlastimil Babka
  provides additional cleanups on top or Lorenzo's effort.

- The 11 patch series "Implement numa node notifier" from Oscar Salvador
  creates a standalone notifier for NUMA node memory state changes.
  Previously these were lumped under the more general memory on/offline
  notifier.

- The 6 patch series "Make MIGRATE_ISOLATE a standalone bit" from Zi Yan
  cleans up the pageblock isolation code and fixes a potential issue which
  doesn't seem to cause any problems in practice.

- The 5 patch series "selftests/damon: add python and drgn based DAMON
  sysfs functionality tests" from SeongJae Park adds additional drgn- and
  python-based DAMON selftests which are more comprehensive than the
  existing selftest suite.

- The 5 patch series "Misc rework on hugetlb faulting path" from Oscar
  Salvador fixes a rather obscure deadlock in the hugetlb fault code and
  follows that fix with a series of cleanups.

- The 3 patch series "cma: factor out allocation logic from
  __cma_declare_contiguous_nid" from Mike Rapoport rationalizes and cleans
  up the highmem-specific code in the CMA allocator.

- The 28 patch series "mm/migration: rework movable_ops page migration
  (part 1)" from David Hildenbrand provides cleanups and
  future-preparedness to the migration code.

- The 2 patch series "mm/damon: add trace events for auto-tuned
  monitoring intervals and DAMOS quota" from SeongJae Park adds some
  tracepoints to some DAMON auto-tuning code.

- The 6 patch series "mm/damon: fix misc bugs in DAMON modules" from
  SeongJae Park does that.

- The 6 patch series "mm/damon: misc cleanups" from SeongJae Park also
  does what it claims.

- The 4 patch series "mm: folio_pte_batch() improvements" from David
  Hildenbrand cleans up the large folio PTE batching code.

- The 13 patch series "mm/damon/vaddr: Allow interleaving in
  migrate_{hot,cold} actions" from SeongJae Park facilitates dynamic
  alteration of DAMON's inter-node allocation policy.

- The 3 patch series "Remove unmap_and_put_page()" from Vishal Moola
  provides a couple of page->folio conversions.

- The 4 patch series "mm: per-node proactive reclaim" from Davidlohr
  Bueso implements a per-node control of proactive reclaim - beyond the
  current memcg-based implementation.

- The 14 patch series "mm/damon: remove damon_callback" from SeongJae
  Park replaces the damon_callback interface with a more general and
  powerful damon_call()+damos_walk() interface.

- The 10 patch series "mm/mremap: permit mremap() move of multiple VMAs"
  from Lorenzo Stoakes implements a number of mremap cleanups (of course)
  in preparation for adding new mremap() functionality: newly permit the
  remapping of multiple VMAs when the user is specifying MREMAP_FIXED.  It
  still excludes some specialized situations where this cannot be
  performed reliably.

- The 3 patch series "drop hugetlb_free_pgd_range()" from Anthony Yznaga
  switches some sparc hugetlb code over to the generic version and removes
  the thus-unneeded hugetlb_free_pgd_range().

- The 4 patch series "mm/damon/sysfs: support periodic and automated
  stats update" from SeongJae Park augments the present
  userspace-requested update of DAMON sysfs monitoring files.  Automatic
  update is now provided, along with a tunable to control the update
  interval.

- The 4 patch series "Some randome fixes and cleanups to swapfile" from
  Kemeng Shi does what is claims.

- The 4 patch series "mm: introduce snapshot_page" from Luiz Capitulino
  and David Hildenbrand provides (and uses) a means by which debug-style
  functions can grab a copy of a pageframe and inspect it locklessly
  without tripping over the races inherent in operating on the live
  pageframe directly.

- The 6 patch series "use per-vma locks for /proc/pid/maps reads" from
  Suren Baghdasaryan addresses the large contention issues which can be
  triggered by reads from that procfs file.  Latencies are reduced by more
  than half in some situations.  The series also introduces several new
  selftests for the /proc/pid/maps interface.

- The 6 patch series "__folio_split() clean up" from Zi Yan cleans up
  __folio_split()!

- The 7 patch series "Optimize mprotect() for large folios" from Dev
  Jain provides some quite large (>3x) speedups to mprotect() when dealing
  with large folios.

- The 2 patch series "selftests/mm: reuse FORCE_READ to replace "asm
  volatile("" : "+r" (XXX));" and some cleanup" from wang lian does some
  cleanup work in the selftests code.

- The 3 patch series "tools/testing: expand mremap testing" from Lorenzo
  Stoakes extends the mremap() selftest in several ways, including adding
  more checking of Lorenzo's recently added "permit mremap() move of
  multiple VMAs" feature.

- The 22 patch series "selftests/damon/sysfs.py: test all parameters"
  from SeongJae Park extends the DAMON sysfs interface selftest so that it
  tests all possible user-requested parameters.  Rather than the present
  minimal subset.

30 Jul 2025: NVDIMM for 6.17 [+ + +]

... to get header file cleanups.  Specifically use specific headers rather
than just kernel.h in libnvdimm.h to reduce header file usage.

The second patch is a fix to CXL but is going through my tree as the
libnvdimm patch caused the issue.

Thanks,
Ira

---

libnvdimm fixes for 6.17

- Remove kernel.h from libnvdimm.h
- Fix build issue found later in next

30 Jul 2025: KVM changes for Linux 6.17 merge window [+ + +]
ARM:

- Host driver for GICv5, the next generation interrupt controller for
  arm64, including support for interrupt routing, MSIs, interrupt
  translation and wired interrupts.

- Use FEAT_GCIE_LEGACY on GICv5 systems to virtualize GICv3 VMs on
  GICv5 hardware, leveraging the legacy VGIC interface.

- Userspace control of the 'nASSGIcap' GICv3 feature, allowing
  userspace to disable support for SGIs w/o an active state on hardware
  that previously advertised it unconditionally.

- Map supporting endpoints with cacheable memory attributes on systems
  with FEAT_S2FWB and DIC where KVM no longer needs to perform cache
  maintenance on the address range.

- Nested support for FEAT_RAS and FEAT_DoubleFault2, allowing the guest
  hypervisor to inject external aborts into an L2 VM and take traps of
  masked external aborts to the hypervisor.

- Convert more system register sanitization to the config-driven
  implementation.

- Fixes to the visibility of EL2 registers, namely making VGICv3 system
  registers accessible through the VGIC device instead of the ONE_REG
  vCPU ioctls.

- Various cleanups and minor fixes.

LoongArch:

- Add stat information for in-kernel irqchip

- Add tracepoints for CPUCFG and CSR emulation exits

- Enhance in-kernel irqchip emulation

- Various cleanups.

RISC-V:

- Enable ring-based dirty memory tracking

- Improve perf kvm stat to report interrupt events

- Delegate illegal instruction trap to VS-mode

- MMU improvements related to upcoming nested virtualization

s390:

- Fixes

x86:

- Add CONFIG_KVM_IOAPIC for x86 to allow disabling support for I/O APIC,
  PIC, and PIT emulation at compile time.

- Share device posted IRQ code between SVM and VMX and
  harden it against bugs and runtime errors.

- Use vcpu_idx, not vcpu_id, for GA log tag/metadata, to make lookups O(1)
  instead of O(n).

- For MMIO stale data mitigation, track whether or not a vCPU has access to
  (host) MMIO based on whether the page tables have MMIO pfns mapped; using
  VFIO is prone to false negatives

- Rework the MSR interception code so that the SVM and VMX APIs are more or
  less identical.

- Recalculate all MSR intercepts from scratch on MSR filter changes,
  instead of maintaining shadow bitmaps.

- Advertise support for LKGS (Load Kernel GS base), a new instruction
  that's loosely related to FRED, but is supported and enumerated
  independently.

- Fix a user-triggerable WARN that syzkaller found by setting the vCPU
  in INIT_RECEIVED state (aka wait-for-SIPI), and then putting the vCPU
  into VMX Root Mode (post-VMXON).  Trying to detect every possible path
  leading to architecturally forbidden states is hard and even risks
  breaking userspace (if it goes from valid to valid state but passes
  through invalid states), so just wait until KVM_RUN to detect that
  the vCPU state isn't allowed.

- Add KVM_X86_DISABLE_EXITS_APERFMPERF to allow disabling interception of
  APERF/MPERF reads, so that a "properly" configured VM can access
  APERF/MPERF.  This has many caveats (APERF/MPERF cannot be zeroed
  on vCPU creation or saved/restored on suspend and resume, or preserved
  over thread migration let alone VM migration) but can be useful whenever
  you're interested in letting Linux guests see the effective physical CPU
  frequency in /proc/cpuinfo.

- Reject KVM_SET_TSC_KHZ for vm file descriptors if vCPUs have been
  created, as there's no known use case for changing the default
  frequency for other VM types and it goes counter to the very reason
  why the ioctl was added to the vm file descriptor.  And also, there
  would be no way to make it work for confidential VMs with a "secure"
  TSC, so kill two birds with one stone.

- Dynamically allocation the shadow MMU's hashed page list, and defer
  allocating the hashed list until it's actually needed (the TDP MMU
  doesn't use the list).

- Extract many of KVM's helpers for accessing architectural local APIC
  state to common x86 so that they can be shared by guest-side code for
  Secure AVIC.

- Various cleanups and fixes.

x86 (Intel):

- Preserve the host's DEBUGCTL.FREEZE_IN_SMM when running the guest.
  Failure to honor FREEZE_IN_SMM can leak host state into guests.

- Explicitly check vmcs12.GUEST_DEBUGCTL on nested VM-Enter to prevent
  L1 from running L2 with features that KVM doesn't support, e.g. BTF.

x86 (AMD):

- WARN and reject loading kvm-amd.ko instead of panicking the kernel if the
  nested SVM MSRPM offsets tracker can't handle an MSR (which is pretty
  much a static condition and therefore should never happen, but still).

- Fix a variety of flaws and bugs in the AVIC device posted IRQ code.

- Inhibit AVIC if a vCPU's ID is too big (relative to what hardware
  supports) instead of rejecting vCPU creation.

- Extend enable_ipiv module param support to SVM, by simply leaving
  IsRunning clear in the vCPU's physical ID table entry.

- Disable IPI virtualization, via enable_ipiv, if the CPU is affected by
  erratum #1235, to allow (safely) enabling AVIC on such CPUs.

- Request GA Log interrupts if and only if the target vCPU is blocking,
  i.e. only if KVM needs a notification in order to wake the vCPU.

- Intercept SPEC_CTRL on AMD if the MSR shouldn't exist according to the
  vCPU's CPUID model.

- Accept any SNP policy that is accepted by the firmware with respect to
  SMT and single-socket restrictions.  An incompatible policy doesn't put
  the kernel at risk in any way, so there's no reason for KVM to care.

- Drop a superfluous WBINVD (on all CPUs!) when destroying a VM and
  use WBNOINVD instead of WBINVD when possible for SEV cache maintenance.

- When reclaiming memory from an SEV guest, only do cache flushes on CPUs
  that have ever run a vCPU for the guest, i.e. don't flush the caches for
  CPUs that can't possibly have cache lines with dirty, encrypted data.

Generic:

- Rework irqbypass to track/match producers and consumers via an xarray
  instead of a linked list.  Using a linked list leads to O(n^2) insertion
  times, which is hugely problematic for use cases that create large
  numbers of VMs.  Such use cases typically don't actually use irqbypass,
  but eliminating the pointless registration is a future problem to
  solve as it likely requires new uAPI.

- Track irqbypass's "token" as "struct eventfd_ctx *" instead of a "void *",
  to avoid making a simple concept unnecessarily difficult to understand.

- Decouple device posted IRQs from VFIO device assignment, as binding a VM
  to a VFIO group is not a requirement for enabling device posted IRQs.

- Clean up and document/comment the irqfd assignment code.

- Disallow binding multiple irqfds to an eventfd with a priority waiter,
  i.e.  ensure an eventfd is bound to at most one irqfd through the entire
  host, and add a selftest to verify eventfd:irqfd bindings are globally
  unique.

- Add a tracepoint for KVM_SET_MEMORY_ATTRIBUTES to help debug issues
  related to private <=> shared memory conversions.

- Drop guest_memfd's .getattr() implementation as the VFS layer will call
  generic_fillattr() if inode_operations.getattr is NULL.

- Fix issues with dirty ring harvesting where KVM doesn't bound the
  processing of entries in any way, which allows userspace to keep KVM
  in a tight loop indefinitely.

- Kill off kvm_arch_{start,end}_assignment() and x86's associated tracking,
  now that KVM no longer uses assigned_device_count as a heuristic for
  either irqbypass usage or MDS mitigation.

Selftests:

- Fix a comment typo.

- Verify KVM is loaded when getting any KVM module param so that attempting
  to run a selftest without kvm.ko loaded results in a SKIP message about
  KVM not being loaded/enabled (versus some random parameter not existing).

- Skip tests that hit EACCES when attempting to access a file, and rpint
  a "Root required?" help message.  In most cases, the test just needs to
  be run with elevated permissions.

30 Jul 2025: LEDs for v6.17 [+ + +]
LEDs for for v6.17

- Improvements & Fixes
  * A fix has been implemented in QCOM Flash to prevent incorrect register
    access when the driver is re-bound. This is solved by duplicating a static
    register array during the probe function, which prevents register addresses
    from being miscalculated after multiple binds.
  * The LP50xx driver now correctly handles the 'reg' property in device tree
    child nodes to ensure the multi_index is set correctly. This prevents
    issues where LEDs could be controlled incorrectly if the device tree nodes
    were processed in a different order. An error is returned if the reg
    property is missing or out of range.
  * A Kconfig dependency on between TPS6131x and V4L2_FLASH_LED_CLASS has been
    added to prevent a build failure when the driver is built-in and the V4L2
    flash infrastructure is a loadable module.
  * A potential buffer overflow warning in PCA955x was reported by older GCC
    versions has been fixed by using a more precise format specifier when
    creating the default LED label.

- Cleanups & Refactoring
  * The MAINTAINERS file entry for the TPS6131X flash LED driver has been
    corrected to point to the correct device tree binding file name.
  * A comment in the Flash Class for the flash_timeout setter has been
    corrected to "flash timeout" from "flash duration" for accuracy.
  * The of_led_get() function is no longer exported as it has no users
    outside of its own module.

- Removals
  * The commit to configure LED blink intervals for hardware offload in the
    Netdev Trigger has been reverted. This change was found to break existing
    PHY drivers by putting their LEDs into a permanent, unconditional blinking
    state.

- Device Tree Bindings Updates
  * The binding for LP50xx has been updated to document that the child reg
    property is the index within the LED bank. The example was also updated to
    use correct values.
  * The JNCP5623 binding has been updated to add 0x39 as a valid I2C address,
    as it is used by the NCP5623C variant.

30 Jul 2025: MFD for v6.17 [+ + +]
MFD for v6.17

- New Support & Features
  * Add extensive support for the Analog Devices ADP5589 I/O expander, including
    core MFD, GPIO, PWM, and a new keypad matrix input driver. This also adds
    support for handling various events including GPI, keypad, reset and unlock
    ev ents.
  * Add support for the TI TPS652G1 PMIC, a stripped-down version of the TPS65224,
    including core MFD, PFSM, pinctrl, and GPIO support.
  * Add support for the Apple Silicon System Management Controller (SMC), including
    the core MFD driver which handles the RTKit-based protocol, a new GPIO driver
    for PMU GPIOs, and a new reboot/power-off driver.

- Improvements & Fixes
  * Dynamically add ADP5585 sub-devices based on device tree properties.
  * Move ADP5585 oscillator control from the child PWM driver to the main MFD
    driver to better handle shared resources.
  * Add support for a hardware reset pin and VDD regulator to the ADP5585 driver.
  * Update the TPS65219 MFD cell's GPIO compatible string for the TPS65214 to
    reflect hardware capabilities correctly.
  * Separate the ChromeOS EC charge-control probing from the USB-PD subsystem,
    allowing it to probe independently based on the dedicated EC_FEATURE_CHARGER.
  * Fix an interrupt naming typo in the MT6370 driver.
  * Fix RK806 PMIC reset behavior by allowing the reset mode to be customized via a
    new device tree property.
  * Fix AXP20X regulator cell ID conflicts for secondary PMICs on boards without an
    IRQ line connected.
  * Fix MT6397 keypad sub-device creation to use specific names instead of a
    generic one, ensuring correct driver binding.
  * Fix a build warning in the stm32-timers driver by adding a missing include for
    export.h.

- Cleanups & Refactoring
  * Refactor the ADP5585 driver to simplify how regmap defaults are handled, making
    it easier to add new chip variants.
  * Introduce per-chip register map structures for the ADP5585/ADP5589 family to
    handle differences between the devices.
  * Convert several drivers to use dev_fwnode() instead of of_fwnode_handle().
  * Make various static structures const in the cs40l50, rohm-bd71828, tps65219,
    and twl6040 drivers.
  * Remove redundant pm_runtime_mark_last_busy() calls from several drivers.
  * Alphabetize Kconfig entries for Cirrus Logic and Maxim drivers.
  * Remove unused fields from the 'tps65219' struct.
  * Update several MFD-related headers to follow the 'Include What You Use' (IWYU)
    principle.

- Removals
  * Remove the old, platform-data-based adp5589-keys input driver, which is now
    superseded by the new MFD-based adp5585-keys driver.
  * Remove the unused twl6030_mmc_card_detect() functions and associated header
    declarations.
  * Remove the now unused pcf50633/core.h header file.
  * Remove the fsl,imx8qxp-csr device tree binding, which was being used
    incorrectly.

- Device Tree Bindings Updates
  * Add support for the Analog Devices ADP5589 I/O expander to the adi,adp5585.yaml
    binding.
  * Add new properties to the adi,adp5585.yaml binding for input events, including
    keypad pins, unlock events, and reset events.
  * Add a reset-gpios property to the adi,adp5585.yaml binding.
  * Add the TI TPS652G1 PMIC to the ti,tps6594.yaml binding.
  * Add new bindings for the Apple Mac System Management Controller (SMC) and its
    sub-devices: apple,smc.yaml, apple,smc-gpio.yaml, and apple,smc-reboot.yaml.
  * Convert the Freescale MXS LRADC binding (mxs-lradc) to YAML schema format.
  * Convert and combine the NXP LPC1850 CREG, DMAMUX, and USB OTG PHY bindings into
    a single YAML schema file.
  * Convert the TI TPS65910 binding to YAML schema format.
  * Add a comment to the samsung,s2mps11.yaml binding to clarify the use of 'oneOf'
    for interrupt properties.
  * Add the rockchip,reset-mode property to the rockchip,rk806.yaml binding to
    allow customization of the PMIC's reset behavior.

30 Jul 2025: MIPS changes for v6.17 [+ + +]
DT updates for ralink, mobileye and ralink
Clean up of mc146818 usage
Speed up delay calibration for CPS
Other cleanups and fixes

30 Jul 2025: GNSS update for 6.17-rc1 [+ + +]
GNSS update for 6.17-rc1

Here is a GNSS update for 6.17-rc1 adding a compatible string for a new
u-blox receiver.

This has been in linux-next for weeks with no reported issues.

30 Jul 2025: probes: Updates for v6.17 [+ + +]
Probes updates for v6.17:

 - Stack usage reduction for probe events:
   - Allocate string buffers from the heap for uprobe, eprobe, kprobe,
     and fprobe events to avoid stack overflow.
   - Allocate traceprobe_parse_context from the heap to prevent
     potential stack overflow.
   - Fix a typo in the above commit.

 - New features for eprobe and tprobe events:
   - Add support for arrays in eprobes.
   - Support multiple tprobes on the same tracepoint.

 - Improve efficiency:
   - Register fprobe-events only when it is enabled to reduce overhead.
   - Register tracepoints for tprobe events only when enabled to
     resolve a lock dependency.

 - Code Cleanup:
   - Add kerneldoc for traceprobe_parse_event_name() and __get_insn_slot().
   - Sort #include alphabetically in the probes code.
   - Remove the unused 'mod' field from the tprobe-event.
   - Clean up the entry-arg storing code in probe-events.

 - Selftest update
   - Enable fprobe events before checking enable_functions in selftests.




probes-v6.17

30 Jul 2025: sh updates for v6.17 [+ + +]
this is my pull request for v6.17 which contains just one patch.

The patch Ben Hutchings replaces the hyphen in the exported variable ld-bfd
with an underscore to avoid issues with certain shells such as dash which
do not pass through environment variables whose name includes a hyphen.

sh updates for v6.17

- sh: Do not use hyphen in exported variable name

 
29 Jul 2025: tracing: Remove or hide some unused tracepoints for 6.17 [+ + +]


Remove or hide unused tracepoints

Tracepoints take up memory (around 5K per tracepoint) even when they are
unused. Changes are being made to detect when a tracepoint is defined but
unused and a warning is shown at build. But those changes are not yet
ready for inclusion.

- Fix some of the unused tracepoints that it detected

  Some tracepoints were removed and others were hidden by config settings
  to match the config settings of where they are instantiated. Some
  tracepoints were moved into architecture specific code as only one
  architecture used them.

- Call the ftrace_test_filter tracepoint in an unreachable if statement

  The ftrace_test_filter tracepoint which is defined when ftrace selftests
  are configured and is used to test the filter logic, but the tracepoint is
  not actually called. It is put into an if statement to not have it get
  compiled out, but also not warn for not being used.




trace-unused-v6.17

29 Jul 2025: runtime verification: Updates for 6.17 [+ + +]

Runtime verification changes for 6.17

- Added Linear temporal logic monitors for RT application

  Real-time applications may have design flaws causing them to have
  unexpected latency. For example, the applications may raise page faults, or
  may be blocked trying to take a mutex without priority inheritance.

  However, while attempting to implement DA monitors for these real-time
  rules, deterministic automaton is found to be inappropriate as the
  specification language. The automaton is complicated, hard to understand,
  and error-prone.

  For these cases, linear temporal logic is found to be more suitable. The
  LTL is more concise and intuitive.

- Make printk_deferred() public

  The new monitors needed access to printk_deferred(). Make them visible for
  the entire kernel.

- Add a vpanic() to allow for va_list to be passed to panic.

- Add rtapp container monitor.

  A collection of monitors that check for common problems with real-time
  applications that cause unexpected latency.

- Add page fault tracepoints to risc-v

  These tracepoints are necessary to for the RV monitor to run on risc-v.

- Fix the behaviour of the rv tool with -s and idle tasks.

- Allow the rv tool to gracefully terminate with SIGTERM

- Adjusts dot2c not to create lines over 100 columns

- Properly order nested monitors in the RV Kconfig file

- Return the registration error in all DA monitor instead of 0

- Update and add new sched collection monitors

  Replace tss and sncid monitors with more complete sts:
  Not only prove that switches occur in scheduling context and scheduling
  needs interrupt disabled but also that each call to the scheduler
  disables interrupts to (optionally) switch.

  New monitor: nrp
   Preemption requires need resched which is cleared by any switch
   (includes a non optimal workaround for /nested/ preemptions)

  New monitor: sssw
   suspension requires setting the task to sleepable and, after the
   switch occurs, the task requires a wakeup to come back to runnable

  New monitor: opid
   waking and need-resched operations occur with interrupts and
   preemption disabled or in IRQ without explicitly disabling preemption




trace-rv-6.17

 
30 Jul 2025: drm for 6.17-rc1 [+ + +]
This is the main drm pull request for 6.17-rc1.

Top of the list:
Conflicts abound in this, amdgpu and xe are all about the conflicting.
None of them are insanely complex, but there are a lot of them.

There is also one silent conflict mentioned by Stephen:
https://lore.kernel.org/dri-devel/[email protected]/

I've done a pass at merging mostly taking from drm-tip:
https://github.com/airlied/linux/tree/drm-next-6.17-rc1-merged

External things:
Rust work that is needed for nova driver development.
(mainly DMA coherent allocations)
There is an mtd driver for intel xe non-volatile memory.
There are some i2c bits for intel xe designware integration.
Change to hibernate for better shmem/hibernate interaction

Highlights:
Intel xe enable Panthor Lake, started adding WildCat Lake.
amdgpu has a bunch of reset improvments along with the usual IP updates
msm got VM_BIND support which is important for vulkan sparse memory
more drm_panic users
gpusvm common code to handle a bunch of core SVM work outside drivers.

Mostly it just seems like lots of stuff across the board as usual.

Let me know if there are any issues or if I've forgotten something,

Dave.

drm-next-2025-07-30:
drm for 6.17-rc1

non-drm:
rust:
- make ETIMEDOUT available
- add size constants up to SZ_2G
- add DMA coherent allocation bindings
mtd:
- driver for Intel GPU non-volatile storage
i2c
- designware quirk for Intel xe

core:
- atomic helpers: tune enable/disable sequences
- add task info to wedge API
- refactor EDID quirks
- connector: move HDR sink to drm_display_info
- fourcc: half-float and 32-bit float formats
- mode_config: pass format info to simplify

dma-buf:
- heaps: Give CMA heap a stable name

ci:
- add device tree validation and kunit

displayport:
- change AUX DPCD access probe address
- add quirk for DPCD probe
- add panel replay definitions
- backlight control helpers

fbdev:
- make CONFIG_FIRMWARE_EDID available on all arches

fence:
- fix UAF issues

format-helper:
- improve tests

gpusvm:
- introduce devmem only flag for allocation
- add timeslicing support to GPU SVM

ttm:
- improve eviction

sched:
- tracing improvements
- kunit improvements
- memory leak fixes
- reset handling improvements

color mgmt:
- add hardware gamma LUT handling helpers

bridge:
- add destroy hook
- switch to reference counted drm_bridge allocations
- tc358767: convert to devm_drm_bridge_alloc
- improve CEC handling

panel:
- switch to reference counter drm_panel allocations
- fwnode panel lookup
- Huiling hl055fhv028c support
- Raspberry Pi 7" 720x1280 support
- edp: KDC KD116N3730A05, N160JCE-ELL CMN, N116BCJ-EAK
- simple: AUO P238HAN01
- st7701: Winstar wf40eswaa6mnn0
- visionox: rm69299-shift
- Renesas R61307, Renesas R69328 support
- DJN HX83112B

hdmi:
- add CEC handling
- YUV420 output support

xe:
- WildCat Lake support
- Enable PanthorLake by default
- mark BMG as SRIOV capable
- update firmware recommendations
- Expose media OA units
- aux-bux support for non-volatile memory
- MTD intel-dg driver for non-volatile memory
- Expose fan control and voltage regulator in sysfs
- restructure migration for multi-device
- Restore GuC submit UAF fix
- make GEM shrinker drm managed
- SRIOV VF Post-migration recovery of GGTT nodes
- W/A additions/reworks
- Prefetch support for svm ranges
- Don't allocate managed BO for each policy change
- HWMON fixes for BMG
- Create LRC BO without VM
- PCI ID updates
- make SLPC debugfs files optional
- rework eviction rejection of bound external BOs
- consolidate PAT programming logic for pre/post Xe2
- init changes for flicker-free boot
- Enable GuC Dynamic Inhibit Context switch

i915:
- drm_panic support for i915/xe
- initial flip queue off by default for LNL/PNL
- Wildcat Lake Display support
- Support for DSC fractional link bpp
- Support for simultaneous Panel Replay and Adaptive sync
- Support for PTL+ double buffer LUT
- initial PIPEDMC event handling
- drm_panel_follower support
- DPLL interface renames
- allocate struct intel_display dynamically
- flip queue preperation
- abstract DRAM detection better
- avoid GuC scheduling stalls
- remove DG1 force probe requirement
- fix MEI interrupt handler on RT kernels
- use backlight control helpers for eDP
- more shared display code refactoring

amdgpu:
- add userq slot to INFO ioctl
- SR-IOV hibernation support
- Suspend improvements
- Backlight improvements
- Use scaling for non-native eDP modes
- cleaner shader updates for GC 9.x
- Remove fence slab
- SDMA fw checks for userq support
- RAS updates
- DMCUB updates
- DP tunneling fixes
- Display idle D3 support
- Per queue reset improvements
- initial smartmux support

amdkfd:
- enable KFD on loongarch
- mtype fix for ext coherent system memory

radeon:
- CS validation additional GL extensions
- drop console lock during suspend/resume
- bump driver version

msm:
- VM BIND support
- CI: infrastructure updates
- UBWC single source of truth
- decouple GPU and KMS support
- DP: rework I/O accessors
- DPU: SM8750 support
- DSI: SM8750 support
- GPU: X1-45 support and speedbin support for X1-85
- MDSS: SM8750 support

nova:
- register! macro improvements
- DMA object abstraction
- VBIOS parser + fwsec lookup
- sysmem flush page support
- falcon: generic falcon boot code and HAL
- FWSEC-FRTS: fb setup and load/execute

ivpu:
- Add Wildcat Lake support
- Add turbo flag

ast:
- improve hardware generations implementation

imx:
- IMX8qxq Display Controller support

lima:
- Rockchip RK3528 GPU support

nouveau:
- fence handling cleanup

panfrost:
- MT8370 support
- bo labeling
- 64-bit register access

qaic:
- add RAS support

rockchip:
- convert inno_hdmi to a bridge

rz-du:
- add RZ/V2H(P) support
- MIPI-DSI DCS support

sitronix:
- ST7567 support

sun4i:
- add H616 support

tidss:
- add TI AM62L support
- AM65x OLDI bridge support

bochs:
- drm panic support

vkms:
- YUV and R* format support
- use faux device

vmwgfx:
- fence improvements

hyperv:
- move out of simple
- add drm_panic support
drm for 6.17-rc1

non-drm:
rust:
- make ETIMEDOUT available
- add size constants up to SZ_2G
- add DMA coherent allocation bindings
mtd:
- driver for Intel GPU non-volatile storage
i2c
- designware quirk for Intel xe

core:
- atomic helpers: tune enable/disable sequences
- add task info to wedge API
- refactor EDID quirks
- connector: move HDR sink to drm_display_info
- fourcc: half-float and 32-bit float formats
- mode_config: pass format info to simplify

dma-buf:
- heaps: Give CMA heap a stable name

ci:
- add device tree validation and kunit

displayport:
- change AUX DPCD access probe address
- add quirk for DPCD probe
- add panel replay definitions
- backlight control helpers

fbdev:
- make CONFIG_FIRMWARE_EDID available on all arches

fence:
- fix UAF issues

format-helper:
- improve tests

gpusvm:
- introduce devmem only flag for allocation
- add timeslicing support to GPU SVM

ttm:
- improve eviction

sched:
- tracing improvements
- kunit improvements
- memory leak fixes
- reset handling improvements

color mgmt:
- add hardware gamma LUT handling helpers

bridge:
- add destroy hook
- switch to reference counted drm_bridge allocations
- tc358767: convert to devm_drm_bridge_alloc
- improve CEC handling

panel:
- switch to reference counter drm_panel allocations
- fwnode panel lookup
- Huiling hl055fhv028c support
- Raspberry Pi 7" 720x1280 support
- edp: KDC KD116N3730A05, N160JCE-ELL CMN, N116BCJ-EAK
- simple: AUO P238HAN01
- st7701: Winstar wf40eswaa6mnn0
- visionox: rm69299-shift
- Renesas R61307, Renesas R69328 support
- DJN HX83112B

hdmi:
- add CEC handling
- YUV420 output support

xe:
- WildCat Lake support
- Enable PanthorLake by default
- mark BMG as SRIOV capable
- update firmware recommendations
- Expose media OA units
- aux-bux support for non-volatile memory
- MTD intel-dg driver for non-volatile memory
- Expose fan control and voltage regulator in sysfs
- restructure migration for multi-device
- Restore GuC submit UAF fix
- make GEM shrinker drm managed
- SRIOV VF Post-migration recovery of GGTT nodes
- W/A additions/reworks
- Prefetch support for svm ranges
- Don't allocate managed BO for each policy change
- HWMON fixes for BMG
- Create LRC BO without VM
- PCI ID updates
- make SLPC debugfs files optional
- rework eviction rejection of bound external BOs
- consolidate PAT programming logic for pre/post Xe2
- init changes for flicker-free boot
- Enable GuC Dynamic Inhibit Context switch

i915:
- drm_panic support for i915/xe
- initial flip queue off by default for LNL/PNL
- Wildcat Lake Display support
- Support for DSC fractional link bpp
- Support for simultaneous Panel Replay and Adaptive sync
- Support for PTL+ double buffer LUT
- initial PIPEDMC event handling
- drm_panel_follower support
- DPLL interface renames
- allocate struct intel_display dynamically
- flip queue preperation
- abstract DRAM detection better
- avoid GuC scheduling stalls
- remove DG1 force probe requirement
- fix MEI interrupt handler on RT kernels
- use backlight control helpers for eDP
- more shared display code refactoring

amdgpu:
- add userq slot to INFO ioctl
- SR-IOV hibernation support
- Suspend improvements
- Backlight improvements
- Use scaling for non-native eDP modes
- cleaner shader updates for GC 9.x
- Remove fence slab
- SDMA fw checks for userq support
- RAS updates
- DMCUB updates
- DP tunneling fixes
- Display idle D3 support
- Per queue reset improvements
- initial smartmux support

amdkfd:
- enable KFD on loongarch
- mtype fix for ext coherent system memory

radeon:
- CS validation additional GL extensions
- drop console lock during suspend/resume
- bump driver version

msm:
- VM BIND support
- CI: infrastructure updates
- UBWC single source of truth
- decouple GPU and KMS support
- DP: rework I/O accessors
- DPU: SM8750 support
- DSI: SM8750 support
- GPU: X1-45 support and speedbin support for X1-85
- MDSS: SM8750 support

nova:
- register! macro improvements
- DMA object abstraction
- VBIOS parser + fwsec lookup
- sysmem flush page support
- falcon: generic falcon boot code and HAL
- FWSEC-FRTS: fb setup and load/execute

ivpu:
- Add Wildcat Lake support
- Add turbo flag

ast:
- improve hardware generations implementation

imx:
- IMX8qxq Display Controller support

lima:
- Rockchip RK3528 GPU support

nouveau:
- fence handling cleanup

panfrost:
- MT8370 support
- bo labeling
- 64-bit register access

qaic:
- add RAS support

rockchip:
- convert inno_hdmi to a bridge

rz-du:
- add RZ/V2H(P) support
- MIPI-DSI DCS support

sitronix:
- ST7567 support

sun4i:
- add H616 support

tidss:
- add TI AM62L support
- AM65x OLDI bridge support

bochs:
- drm panic support

vkms:
- YUV and R* format support
- use faux device

vmwgfx:
- fence improvements

hyperv:
- move out of simple
- add drm_panic support

 
29 Jul 2025: PCI changes for v6.17 [+ + +]
Enumeration:

  - Allow built-in drivers, not just modular drivers, to use async initial
    probing (Lukas Wunner)

  - Refactor capability search from __pci_find_next_cap_ttl() into
    PCI_FIND_NEXT_CAP() and pci_find_next_ext_capability() into
    PCI_FIND_NEXT_EXT_CAP().  Both accept function pointers to a config
    read function to make them more generic (Hans Zhang)

  - Support Immediate Readiness even on devices with no PM Capability (Sean
    Christopherson)

  - Consolidate definition of PCIE_RESET_CONFIG_WAIT_MS (100ms), the
    required delay between a reset and sending config requests to a device
    (Niklas Cassel)

  - Add pci_is_display() to check for "Display" base class and use it in
    ALSA hda, vfio, vga_switcheroo, vt-d (Mario Limonciello)

  - Allow 'isolated PCI functions' (multi-function devices without a
    function 0) for LoongArch, similar to s390 and jailhouse (Huacai Chen)

Power control:

  - Add ability to enable optional slot clock for cases where the PCIe host
    controller and the slot are supplied by different clocks (Marek Vasut)

PCIe native device hotplug:

  - Fix runtime PM ref imbalance on Hot-Plug Capable ports caused by
    misinterpreting a config read failure after a device has been removed
    (Lukas Wunner)

  - Avoid creating a useless PCIe port service device for pciehp if the
    slot is handled by the ACPI hotplug driver (Lukas Wunner)

  - Ignore ACPI hotplug slots when calculating depth of pciehp hotplug
    ports (Lukas Wunner)

Virtualization:

  - Save VF resizable BAR state and restore it after reset (Michał
    Winiarski)

  - Allow IOV resources (VF BARs) to be resized (Michał Winiarski)

  - Add pci_iov_vf_bar_set_size() so drivers can control VF BAR size
    (Michał Winiarski)

Endpoint framework:

  - Add RC-to-EP doorbell support using platform MSI controller, including
    a test case (Frank Li)

  - Allow BAR assignment via configfs so platforms have flexibility in
    determining BAR usage (Jerome Brunet)

Native PCIe controller drivers:

  - Convert amazon,al-alpine-v[23]-pcie, apm,xgene-pcie, axis,artpec6-pcie,
    marvell,armada-3700-pcie, st,spear1340-pcie to DT schema format (Rob
    Herring)

  - Use dev_fwnode() instead of of_fwnode_handle() to remove OF dependency
    in altera (fixes an unused variable), designware-host, mediatek,
    mediatek-gen3, mobiveil, plda, xilinx, xilinx-dma, xilinx-nwl (Jiri
    Slaby, Arnd Bergmann)

  - Convert aardvark, altera, brcmstb, designware-host, iproc, mediatek,
    mediatek-gen3, mobiveil, plda, rcar-host, vmd, xilinx, xilinx-dma,
    xilinx-nwl from using pci_msi_create_irq_domain() to using
    msi_create_parent_irq_domain() instead; this makes the interrupt
    controller per-PCI device, allows dynamic allocation of vectors after
    initialization, and allows support of IMS (Nam Cao)

APM X-Gene PCIe controller driver:

  - Rewrite MSI handling to MSI CPU affinity, drop useless CPU hotplug
    bits, use device-managed memory allocations, and clean things up (Marc
    Zyngier)

  - Probe xgene-msi as a standard platform driver rather than a
    subsys_initcall (Marc Zyngier)

Broadcom STB PCIe controller driver:

  - Add optional DT 'num-lanes' property and if present, use it to override
    the Maximum Link Width advertised in Link Capabilities (Jim Quinlan)

Cadence PCIe controller driver:

  - Use PCIe Message routing types from the PCI core rather than defining
    private ones (Hans Zhang)

  - Use PCI_FIND_NEXT_CAP() and PCI_FIND_NEXT_EXT_CAP() with the
    cdns_pcie_read_cfg() accessor to replace duplicated code (Hans Zhang)

Freescale i.MX6 PCIe controller driver:

  - Add IMX8MQ_EP third 64-bit BAR in epc_features (Richard Zhu)

  - Add IMX8MM_EP and IMX8MP_EP fixed 256-byte BAR 4 in epc_features
    (Richard Zhu)

  - Configure LUT for MSI/IOMMU in Endpoint mode so Root Complex can
    trigger doorbel on Endpoint (Frank Li)

  - Remove apps_reset (LTSSM_EN) from
    imx_pcie_{assert,deassert}_core_reset(), which fixes a hotplug
    regression on i.MX8MM (Richard Zhu)

  - Delay Endpoint link start until configfs 'start' written (Richard Zhu)

Intel VMD host bridge driver:

  - Add Intel Panther Lake (PTL)-H/P/U Vendor ID (George D Sworo)

Qualcomm PCIe controller driver:

  - Add DT binding and driver support for SA8255p, which supports ECAM for
    Configuration Space access (Mayank Rana)

  - Update DT binding and driver to describe PHYs and per-Root Port resets
    in a Root Port stanza and deprecate describing them in the host bridge;
    this makes it possible to support multiple Root Ports in the future
    (Krishna Chaitanya Chundru)

  - Add Qualcomm QCS615 to SM8150 DT binding (Ziyue Zhang)

  - Add Qualcomm QCS8300 to SA8775p DT binding (Ziyue Zhang)

  - Drop TBU and ref clocks from Qualcomm SM8150 and SC8180x DT bindings
    (Konrad Dybcio)

  - Document 'link_down' reset in Qualcomm SA8775P DT binding (Ziyue Zhang)

  - Add required PCIE_RESET_CONFIG_WAIT_MS delay after Link up IRQ (Niklas
    Cassel)

Rockchip PCIe controller driver:

  - Drop unused PCIe Message routing and code definitions (Hans Zhang)

  - Remove several unused header includes (Hans Zhang)

  - Use standard PCIe config register definitions instead of
    rockchip-specific redefinitions (Geraldo Nascimento)

  - Set Target Link Speed to 5.0 GT/s before retraining so we have a chance
    to train at a higher speed (Geraldo Nascimento)

Rockchip DesignWare PCIe controller driver:

  - Prevent race between link training and register update via DBI by
    inhibiting link training after hot reset and link down (Wilfred
    Mallawa)

  - Add required PCIE_RESET_CONFIG_WAIT_MS delay after Link up IRQ (Niklas
    Cassel)

Sophgo PCIe controller driver:

  - Add DT binding and driver for Sophgo SG2044 PCIe controller driver in
    Root Complex mode (Inochi Amaoto)

Synopsys DesignWare PCIe controller driver:

  - Use PCI_FIND_NEXT_CAP() and PCI_FIND_NEXT_EXT_CAP() with the
    dw_pcie_read_cfg() accessor to replace duplicated code (Hans Zhang)

  - Add required PCIE_RESET_CONFIG_WAIT_MS after waiting for Link up on
    Ports that support > 5.0 GT/s.  Slower Ports still rely on the
    not-quite-correct PCIE_LINK_WAIT_SLEEP_MS 90ms default delay while
    waiting for the Link (Niklas Cassel)

29 Jul 2025: UBI and UBIFS changes for v6.17-rc1 [+ + +]
From: Richard Weinberger <[email protected]>
To: Linus Torvalds <[email protected]>
Subject: [GIT PULL] UBI and UBIFS changes for v6.17-rc1
Date: Tue, 29 Jul 2025 22:10:17 +0200
Message-ID: <7787490.DFzTOozpa1@nailgun>
MIME-Version: 1.0

Linus,

This time I'm sending from my business account because Google still hates
my mail setup at nod.at.

This pull request contains the following changes for UBI and UBIFS:

UBIFS:
- No longer use write_cache_pages()

UBI:
- Removal of an unused function

29 Jul 2025: capabilities update for v6.17-rc1 [+ + +]
Capabilities update for 6.17

This branch contains two patches:

  cdd73b1666079a73d061396f361df55d59fe96e6 uapi: fix broken link in linux/capability.h

This updates documentation in capability.h.

  337490f0007f910968f828e46501db3091b1a4f8 exec: Correct the permission check for unsafe exec

This is not a trivial patch, but fixes a real problem where during
exec, different effective and real credentials were assumed to mean
changed credentials, making it impossible in the no-new-privs case
to keep different uid and euid.

These are available at:




29 Jul 2025: ftrace: Changes for v6.17 [+ + +]

ftrace changes for v6.17:

- Keep track of when fgraph_ops are registered or not

  Keep accounting of when fgraph_ops are registered as if a fgraph_ops is
  registered twice it can mess up the accounting and it will not work as
  expected later. Trigger a warning if something registers it twice as to
  catch bugs before they are found by things just not working as expected.

- Make DYNAMIC_FTRACE always enabled for architectures that support it

  As static ftrace (where all functions are always traced) is very expensive
  and only exists to help architectures support ftrace, do not make it an
  option. As soon as an architecture supports DYNAMIC_FTRACE make it use it.
  This simplifies the code.

- Remove redundant config HAVE_FTRACE_MCOUNT_RECORD

  The CONFIG_HAVE_FTRACE_MCOUNT was added to help simplify the
  DYNAMIC_FTRACE work, but now every architecture that implements
  DYNAMIC_FTRACE also has HAVE_FTRACE_MCOUNT set too, making it redundant
  with the HAVE_DYNAMIC_FTRACE.

- Make pid_ptr string size match the comment

  In print_graph_proc() the pid_ptr string is of size 11, but the comment says
  /* sign + log10(MAX_INT) + '\0' */ which is actually 12.




ftrace-v6.17

29 Jul 2025: BPF changes for 6.17 [+ + +]
There are conflicts, since Christian rebased what should have been
a stable branch:
https://lore.kernel.org/all/20250623-rebel-verlust-8fcd4cdd9122@brauner/
and sent a pull request for 'vfs-6.17-rc1.bpf' instead:
https://lore.kernel.org/all/20250725-vfs-bpf-a1ee4bf91435@brauner/
I explicitly warned against rebasing it:
https://lore.kernel.org/all/CAADnVQ+iqMi2HEj_iH7hsx+XJAsqaMWqSDe4tzcGAnehFWA9Sw@mail.gmail.com/
since bpf/bpf-next trees are not rebased unlike vfs branches.

The 'vfs-6.17.bpf' branch was created on June 23 in vfs.git and merged into
bpf-next on June 26:

There were conflicts back then that were resolved during the merge of
vfs-6.17.bpf into bpf-next:
https://lore.kernel.org/all/CAADnVQ+pPt7Zt8gS0aW75WGrwjmcUcn3s37Ahd9bnLyzOfB=3g@mail.gmail.com/
Then more fixes to selftests/bpf/*cgroup_xattr* were applied on top.
Due to unnecessary rebase these conflicts have to be resolved again.

Please apply all new hunks from this pull request to resolve conflicts in:
both modified:   kernel/bpf/helpers.c
both added:      tools/testing/selftests/bpf/prog_tests/cgroup_xattr.c
both added:      tools/testing/selftests/bpf/progs/read_cgroupfs_xattr.c

Other than that the changes are:

- Remove usermode driver (UMD) framework (Thomas Weißschuh)

- Introduce Strongly Connected Component (SCC) in the verifier to
  detect loops and refine register liveness (Eduard Zingerman)

- Allow 'void *' cast using bpf_rdonly_cast() and corresponding
  '__arg_untrusted' for global function parameters (Eduard Zingerman)

- Improve precision for BPF_ADD and BPF_SUB operations in the verifier
  (Harishankar Vishwanathan)

- Teach the verifier that constant pointer to a map cannot be NULL
  (Ihor Solodrai)

- Introduce BPF streams for error reporting of various conditions
  detected by BPF runtime (Kumar Kartikeya Dwivedi)

- Teach the verifier to insert runtime speculation barrier (lfence on x86)
  to mitigate speculative execution instead of rejecting the programs
  (Luis Gerhorst)

- Various improvements for 'veristat' (Mykyta Yatsenko)

- For CONFIG_DEBUG_KERNEL config warn on internal verifier
  errors to improve bug detection by syzbot (Paul Chaignon)

- Support BPF private stack on arm64 (Puranjay Mohan)

- Introduce bpf_cgroup_read_xattr() kfunc to read xattr of cgroup's node
  (Song Liu)

- Introduce kfuncs for read-only string opreations (Viktor Malik)

- Implement show_fdinfo() for bpf_links (Tao Chen)

- Reduce verifier's stack consumption (Yonghong Song)

- Implement mprog API for cgroup-bpf programs (Yonghong Song)

Signed-off-by: Alexei Starovoitov <[email protected]>
29 Jul 2025: Driver core changes for 6.17-rc1 [+ + +]

There is one trivial conflict with your tree in rust/helpers/helpers.c.

There are also some non-trivial conflicts with Miguel's Rust tree. Addition=
al to
the resolutions in linux-next, which should be correct, I also did a test m=
erge
with Miguel's tree:

it driver-core-6.17-test-merge

All commits have been in linux-next for over a week with no reported issues=
.

Independently, preparing this PR I noticed one minor issue with one of the
debugfs changes. I already sent a fix [1] for this, which should reach you
through a normal -fixes PR (unless you decide to pick it right away).

- Danilo

[1] https://lore.kernel.org/lkml/[email protected]/

Driver core changes for 6.17-rc1

- DEBUGFS

  - Remove unneeded debugfs_file_{get,put}() instances

  - Remove last remnants of debugfs_real_fops()

  - Allow storing non-const void * in struct debugfs_inode_info::aux

- SYSFS

  - Switch back to attribute_group::bin_attrs (treewide)

  - Switch back to bin_attribute::read()/write() (treewide)

  - Constify internal references to 'struct bin_attribute'

- Support cache-ids for device-tree systems

  - Add arch hook arch_compact_of_hwid()

  - Use arch_compact_of_hwid() to compact MPIDR values on arm64

- Rust

  - Device

    - Introduce CoreInternal device context (for bus internal methods)

    - Provide generic drvdata accessors for bus devices

    - Provide Driver::unbind() callbacks

    - Use the infrastructure above for auxiliary, PCI and platform

    - Implement Device::as_bound()

    - Rename Device::as_ref() to Device::from_raw() (treewide)

    - Implement fwnode and device property abstractions

      - Implement example usage in the Rust platform sample driver

  - Devres

    - Remove the inner reference count (Arc) and use pin-init instead

    - Replace Devres::new_foreign_owned() with devres::register()

    - Require T to be Send in Devres<T>

    - Initialize the data kept inside a Devres last

    - Provide an accessor for the Devres associated Device

  - Device ID

    - Add support for ACPI device IDs and driver match tables

    - Split up generic device ID infrastructure

    - Use generic device ID infrastructure in net::phy

  - DMA

    - Implement the dma::Device trait

    - Add DMA mask accessors to dma::Device

    - Implement dma::Device for PCI and platform devices

    - Use DMA masks from the DMA sample module

  - I/O

    - Implement abstraction for resource regions (struct resource)

    - Implement resource-based ioremap() abstractions

    - Provide platform device accessors for I/O (remap) requests

  - Misc

    - Support fallible PinInit types in Revocable

    - Implement Wrapper<T> for Opaque<T>

    - Merge pin-init blanket dependencies (for Devres)

- Misc

  - Fix OF node leak in auxiliary_device_create()

  - Use util macros in device property iterators

  - Improve kobject sample code

  - Add device_link_test() for testing device link flags

  - Fix typo in Documentation/ABI/testing/sysfs-kernel-address_bits

  - Hint to prefer container_of_const() over container_of()

 
30 Jul 2025: bootconfig: Updates for v6.17 [+ + +]
Sorry for the confusing, this is correct update tag for v6.17.

Bootconfig updates for v6.17:

 - tools/bootconfig:
   - Fix unaligned access when building footer to avoid SIGBUS
   - Cleanup bootconfig footer size calculations

 - test scripts:
   - Fix to add shebang for a test script
   - Improve script portability using portable commands
   - Improve script portability using printf instead of echo
   - Enclose regex with quotes for syntax highlighter




bootconfig-v6.17

 
29 Jul 2025: ktest.pl: Updates for v6.17 [+ + +]


ktest updates for v6.17

- Add new -D option that allows to override variables and options

  For example:

    ./ktest.pl -DPATCH_START:=HEAD~1 -DOUTPUT_DIR=/work/build/urgent config

  The above sets the variable "PATCH_START" to HEAD~1 and the OUTPUT_DIR
  option to "/work/build/urgent".

  This is useful because currently the only way to make a slight change to a
  config file is by modifying that config file. For one time changes, this
  can be annoying. Having a way to do a one time override from the command
  line simplifies the workflow.

  Temp variables (PATCH_START) will override every temp variable in the
  config file,  whereas options will act like a normal OVERRIDE option and
  will only affect the session they define.

     -DBUILD_OUTPUT=/work/git/linux.git

  Replaces the default BUILD_OUTPUT option.

     '-DBUILD_OUTPUT[2]=/work/git/linux.git'

  Only replaces the BUILD_OUTPUT variable for test #2.

- If an option contains itself, just drop it instead of going into an
  infinite loop and failing to parse (it doesn't crash, it detects the
  recursion after 100 iterations anyway).

  Some configs may define a variable with the same name as the option:

     ADD_CONFIG := $(ADD_CONFIG)

  But if the option doesn't exist, it the above will fail to parse. In these
  cases, just ignore evaluating the option inside the definition of another
  option if it has the same name.

- Display the BUILD_DIR and OUTPUT_DIR options at the start of every test

  It is useful to know which kernel source and what destination a test is
  using when it starts, in case a mistake is made. This makes it easier to
  abort the test if the wrong source or destination is being used instead of
  waiting until the test completes.

- Add new PATCHCHECK_SKIP option

  When testing a series of commits that also includes changes to the Linux
  tools directory, it is useless to test the changes in tools as they may
  not affect the kernel itself. Doing tests on the kernel for changes that
  do not affect the kernel is a waste of time.

  Add a PATCHCHECK_SKIP that takes a series of shas that will be skipped
  while doing the individual commit tests.




ktest-v6.17

29 Jul 2025: MMC updates for v6.17 [+ + +]
Here's the pull-request with updates for MMC for v6.17. Details about the
highlights are as usual found in the signed tag.


Kind regards
Ulf Hansson


MMC core:
 - Remove redundant pm_runtime_mark_last_busy() calls

MMC host:
 - Convert drivers to use devm_mmc_alloc_host()
 - Remove redundant pm_runtime_mark_last_busy() calls
 - renesas_sdhi: Add support for the RZ/T2H and RZ/N2H variants
 - renesas_sdhi: Fix incorrect auto retuning for an SDIO card
 - rtsx_usb_sdmmc: Add 74 clocks in poweron flow
 - rtsx_usb_sdmmc: Re-work the code in sd_set_power_mode()
 - loongson2: Add driver for the Loongson-2K SD/SDIO controller
 - loongson2: Add support for the Loongson-2K2000 SD/SDIO/eMMC controller
 - sdhci: Drop sdhci_free_host()/sdhci_pltfm_free() interface
 - sdhci: Remove the sdhci_free_host() and sdhci_pltfm_free() helpers
 - sdhci-cadence: Add support for the Mobileye EyeQ controller
 - sdhci-esdhc-imx: Optimize clock loopback selection
 - sdhci-esdhc-imx: Don't change pinctrl in suspend if wakeup source
 - sdhci-msm: Add support for the Milos variant
 - sdhci-msm: Add support for the qcs8300 variant
 - sdhci-msm: Ensure SD card power isn't ON when card gets removed
 - sdhci-of-k1: Disable HW busy detection

29 Jul 2025: pmdomain/cpuidle-psci updates for v6.17 [+ + +]
Here's the pull-request with pmdomain and cpuidle-psci updates for v6.17.

FYI, this time we have made quite some changes in the pmdomain provider core
(aka genpd), which affects a couple of provider drivers that are sprinkled
across a few more subsystems than usual.

More details about the highlights are as usual found in the signed tag.


Kind regards
Ulf Hansson


pmdomain core:
 - Leave powered-on genpds on until ->sync_state() or late_initcall_sync
 - Export a common ->sync_state() helper for genpd providers
 - Add generic ->sync_state() support
 - Add a bus/driver for genpd provider-devices
 - Introduce dev_pm_genpd_is_on() for consumers

pmdomain providers:
 - cpuidle-psci: Drop redundant ->sync_state() support
 - cpuidle-riscv-sbi: Drop redundant ->sync_state() support
 - imx: Set ISI panic write for imx8m-blk-ctrl
 - qcom: Add support for Glymur and Milos RPMh power-domains
 - qcom: Use of_genpd_sync_state() for power-domains
 - rockchip: Add support for the RK3528 variant
 - samsung: Fix splash-screen handover by enforcing a ->sync_state()
 - sunxi: Add support for Allwinner A523's PCK600 power-controller
 - tegra: Opt-out from genpd's common ->sync_state() support for pmc
 - thead: Instantiate a GPU power sequencer via the auxiliary bus
 - renesas: Move init to postcore_initcalls
 - xilinx: Move ->sync_state() support to firmware driver
 - xilinx: Use of_genpd_sync_state() for power-domains

pmdomain consumers:
 - remoteproc: imx_rproc: Fixup the detect/attach procedure for pre-booted cores

29 Jul 2025: Crypto Update for 6.17 [+ + +]
This update includes the following changes:

API:

- Allow hash drivers without fallbacks (e.g., hardware key).

Algorithms:

- Add hmac hardware key support (phmac) on s390.
- Re-enable sha384 in FIPS mode.
- Disable sha1 in FIPS mode.
- Convert zstd to acomp.

Drivers:

- Lower priority of qat skcipher and aead.
- Convert aspeed to partial block API.
- Add iMX8QXP support in caam.
- Add rate limiting support for GEN6 devices in qat.
- Enable telemetry for GEN6 devices in qat.
- Implement full backlog mode for hisilicon/sec2.
29 Jul 2025: core/entry for v6.17-rc1 [+ + +]
please pull the latest core/entry branch from:

07-29



Updates for the generic entry code:

  - Split the code into syscall and exception/interrupt parts to ease the
    conversion of ARM[64] to the generic entry infrastructure

  - Extend syscall user dispatching to support a single intercepted range
    instead of the default single non-intercepted range. That allows
    monitoring/analysis of a specific executable range, e.g. a library, and
    also provides flexibility for sandboxing scenarios.

  - Cleanup and extend the user dispatch selftest

Note: This results in a trivial merge conflict against the tip sched/core
      pull request. The core/entry version needs to replace the sched/core
      one.

Thanks,

tglx

29 Jul 2025: locking/futex for v6.17-rc1 [+ + +]
please pull the latest locking/futex branch from:

25-07-29

Successfully"


Update for the futex subsystem:

   - Switch the reference counting to a RCU based per-CPU reference to
     address a performance bottleneck vs. the single instance rcuref
     variant.

   - Make the futex selftest build on 32-bit architectures which only
     support 64-bit time_t, e.g. RISCV-32.

   - Cleanups and improvements in selftests and futex bench

Thanks,

tglx

29 Jul 2025: timers/vdso for v6.17-rc1 [+ + +]
please pull the latest timers/vdso branch from:

-07-29

ce file with symlink

A set of updates for the VDSO selftests:

  - Skip the chacha test when the architecture does not provide the random
    infrastructure in the VDSO

  - Switch back to a symlink for vdso_standalone_test_x86 to avoid code
    duplication.

  - Improve code quality and TAP output compliance


 =20

Thanks,

tglx

29 Jul 2025: x86/platform updates for v6.17: AMD Hardware Feedback [+ + +]



x86/platform changes for v6.17:

This tree adds support for the AMD hardware feedback interface (HFI),
by Perry Yuan.

 Thanks,

Ingo

29 Jul 2025: x86/kconfig changes for v6.17 [+ + +]



x86/kconfig changes for v6.17:

 - Emit standard build success messages in insn_sanity.c
   and insn_decoder_test.c. (Ingo Molnar)

 - Refresh the x86-[64|32] defconfigs mechanically (Ingo Molnar)

 Thanks,

Ingo

29 Jul 2025: x86/fpu updates for v6.17 [+ + +]



x86 FPU changes for v6.17:

 - Most of the changes are related to the implementation of
   CET supervisor state support for guests, and its preparatory
   changes. (Chao Gao)

 - Improve/fix the debug output for unexpected FPU exceptions
   (Dave Hansen)

 Thanks,

Ingo

29 Jul 2025: x86/boot updates for v6.17 [+ + +]



x86/boot changes for v6.17:

 - Implement support for embedding EFI SBAT data (Secure Boot
   Advanced Targeting: a secure boot image revocation facility)
   on x86. (Vitaly Kuznetsov)

 - Move the efi_enter_virtual_mode() initialization call
   from the generic init code to x86 init code.
   (Alexander Shishkin)

 Thanks,

Ingo

29 Jul 2025: locking changes for v6.17 [+ + +]



Locking updates for v6.16:

Locking primitives:

  - Mark devm_mutex_init() as __must_check and fix drivers
    that didn't check the return code. (Thomas Weißschuh)

  - Reorganize <linux/local_lock.h> to better expose the
    internal APIs to local variables. (Sebastian Andrzej Siewior)

  - Remove OWNER_SPINNABLE in rwsem (Jinliang Zheng)

  - Remove redundant #ifdefs in the mutex code (Ran Xiaokai)

Lockdep:

  - Avoid returning struct in lock_stats() (Arnd Bergmann)

  - Change `static const` into enum for LOCKF_*_IRQ_*
    (Arnd Bergmann)

  - Temporarily use synchronize_rcu_expedited() in
    lockdep_unregister_key() to speed things up.
    (Breno Leitao)

Rust runtime:

  - Add #[must_use] to Lock::try_lock() (Jason Devers)

 Thanks,

Ingo

 
28 Jul 2025: ext4 changes for 6.17-rc1 [+ + +]
Major ext4 changes for 6.17:

  - Better scalability for ext4 block allocation
  - Fix insufficient credits when writing back large folios

Miscellaneous bug fixes, especially when handling exteded attriutes,
inline data, and fast commit.

28 Jul 2025: IPE update for 6.17 [+ + +]
Please merge this PR for the IPE update for 6.17.

This PR contains a single commit from Eric Biggers. It simplifies IPE
policy audit with SHA-256 library API.

This commit has been tested for several weeks in linux-next without any issues.

Thanks,
Fan

--

ipe/stable-6.17 PR 20250728

28 Jul 2025: Devicetree updates for v6.17 [+ + +]
with GPIO and MFD trees in trivial-devices.yaml and MAINTAINERS. 

Rob


Devicetree updates for 6.17:

- Add bindings for arm,armv7m-nvic, fsl,icoll, fsl,imx23-digctl, Xilinx
  INTC, Analog Devices ADT7411, and a bunch of trivial hwmon devices

- Convert fsl,vf610-mscm-ir, fsl,dsu, via,vt8500-timer, nxp,isp1301,
  Marvell Armada NETA and BM, apm,xgene1-msi, fsl,mpic-msi,
  himax,hx8357d, and sitronix,st7586 bindings to DT schema format

- Fixes for some display bindings

- More indentation clean-ups in examples

- Add more guidelines and clarifications on writing bindings

28 Jul 2025: hardening updates for v6.17-rc1 [+ + +]
that stand out diffstat: there are many scattered changes across arch code
to clean up __init vs KCOV instrumentation. Most are landing here via
the hardening tree but 2 landed separately in their respective trees:
loongarch in v6.16 already, and platform-drivers-x86 that is queued
for merging:
https://lore.kernel.org/all/[email protected]/
Also the stackleak feature has gained native Clang support, and got
renamed as part of the refactoring work, which ends up touching all the
arch Kconfig and Makefile files.

Thanks!

-Kees

hardening updates for v6.17-rc1

- Introduce and start using TRAILING_OVERLAP() helper for fixing
  embedded flex array instances (Gustavo A. R. Silva)

- mux: Convert mux_control_ops to a flex array member in mux_chip
  (Thorsten Blum)

- string: Group str_has_prefix() and strstarts() (Andy Shevchenko)

- Remove KCOV instrumentation from __init and __head (Ritesh Harjani,
  Kees Cook)

- Refactor and rename stackleak feature to support Clang

- Add KUnit test for seq_buf API

- Fix KUnit fortify test under LTO

28 Jul 2025: kselftest next update for Linux 6.17-rc1 [+ + +]
Hi Linus,


Fixes

- false failure of subsystem event test
- glob filter test to use mutex_unlock() instead of mutex_trylock()
- several spelling errors in tests
- test_kexec_jump build errors
- pidfd test duplicate-symbol warnings for SCHED_ CPP symbols

Adds a reliable check for suspend to breakpoints suspend test
Improvements to ipc test

diff is attached.

thanks,
-- Shuah

linux_kselftest-next-6.17-rc1

Fixes

- false failure of subsystem event test
- glob filter test to use mutex_unlock() instead of mutex_trylock()
- several spelling errors in tests
- test_kexec_jump build errors
- pidfd test duplicate-symbol warnings for SCHED_ CPP symbols

Adds a reliable check for suspend to breakpoints suspend test
Improvements to ipc test

28 Jul 2025: kunit next update for Linux 6.17-rc1 [+ + +]
Hi Linus,


Corrects MODULE_IMPORT_NS() syntax documentation, makes kunit_test timeout
configurable via a module parameter and a Kconfig option, fixes longest
symbol length test, adds a test for static stub, and adjusts kunit_test
timeout based on test_{suite,case} speed.

diff is attached.

thanks,
-- Shuah

linux_kselftest-kunit-6.17-rc1

Corrects MODULE_IMPORT_NS() syntax documentation, makes kunit_test timeout
configurable via a module parameter and a Kconfig option, fixes longest
symbol length test, adds a test for static stub, and adjusts kunit_test
timeout based on test_{suite,case} speed.

28 Jul 2025: x86/sev for v6.17-rc1 [+ + +]
please pull the x86/sev lineup for v6.17-rc1.

Thx.

---

- Map the SNP calling area pages too so that OVMF EFI fw can issue SVSM
  calls properly with the goal of implementing EFI variable store in the
  SVSM - a component which is trusted by the guest, vs in the firmware, which
  is not

- Allow the kernel to handle #VC exceptions from EFI runtime services
  properly when running as a SNP guest

- Rework and cleanup the SNP guest request issue glue code a bit

28 Jul 2025: x86/microcode for v6.17-rc1 [+ + +]
please pull one x86/microcode change for v6.17-rc1.

Thx.

---

- Switch the microcode loader from using the fake platform device to
  the new simple faux bus

28 Jul 2025: hfs/hfsplus changes for 6.17-rc1 [+ + +]
Currently, we have around 221 opened issues in HFS/HFS+ file system
drivers. Mostly, xfstests reveal majority of the issues and multiple
tests leave HFS/HFS+ volume in corrupted state.

Johannes Thumshirn has made nice cleanup in hfsplus_submit_bio().
Tetsuo Handa has fixed the syzbot reported issue in
hfsplus_create_attributes_file() for the case of corruption
the Attributes File's metadata. Yangtao Li has fixed the syzbot
reported issue by removing the uneccessary WARN_ON() in
hfsplus_free_extents().

The rest patches contains fixes:
(1) restoring generic/001 successful execution by erasing
deleted b-tree nodes;
(2) eliminating slab-out-of-bounds issue in hfs_bnode_read()
and hfsplus_bnode_read() by checking correctness of offset and
length by operation of accessing b-tree node's content;
(3) eliminating slab-out-of-bounds read in hfsplus_uni2asc()
for the case if b-tree node's record has corrupted length of
a name that could be bigger than HFSPLUS_MAX_STRLEN;
(4) eliminating general protection fault in hfs_find_init()
for the case of initial b-tree object creation.

hfs/hfsplus updates for v6.17

- hfs: fix general protection fault in hfs_find_init()
- hfs: fix slab-out-of-bounds in hfs_bnode_read()
- hfsplus: fix slab-out-of-bounds in hfsplus_bnode_read()
- hfsplus: fix slab-out-of-bounds read in hfsplus_uni2asc()
- hfsplus: don't use BUG_ON() in hfsplus_create_attributes_file()
- hfsplus: don't set REQ_SYNC for hfsplus_submit_bio()
- hfsplus: remove mutex_lock check in hfsplus_free_extents
- hfs: make splice write available again
- hfsplus: make splice write available again
- hfs: fix not erasing deleted b-tree node issue

 
23 Jul 2025: sysctl changes for v6.17-rc1 [+ + +]

Linus:

Sending the PR early as I'm on PTO next week.

I can make adjustments (if needed) at the end of the merge window as
I'll be back by then.

Best

Summary

* Move sysctls out of the kern_table array

  This is the final move of ctl_tables into their respective subsystems. On=
ly 5
  (out of the original 50) will remain in kernel/sysctl.c file; these handle
  either sysctl or common arch variables.

  By decentralizing sysctl registrations, subsystem maintainers regain cont=
rol
  over their sysctl interfaces, improving maintainability and reducing the
  likelihood of merge conflicts.

* docs: Remove false positives from check-sysctl-docs

  Stopped falsely identifying sysctls as undocumented or unimplemented in t=
he
  check-sysctl-docs script. This script can now be used to automatically
  identify if documentation is missing.

* Testing

  All these have been in linux-next since rc3, giving them a solid 3 to 4 w=
eeks
  worth of testing. Additionally, sysctl selftests and kunit were also run
  locally on my x86_64

 
28 Jul 2025: KVM/arm64 changes for 6.17, round #1 [+ + +]
Hi Paolo,

Here's the first round of changes for 6.17.

A very unusual inclusion that you should know about is the GICv5 host driver.
Thomas was OK with the driver going through the kvmarm tree [*] as there aren't
any conflicts and Sascha's series adds some KVM support on top.

Otherwise, we've got the usual mix (details in the tag) with some reduction
of the NV v. non-NV feature gap.


Thanks,
Oliver

[*]: https://lore.kernel.org/all/87y0slur4t.ffs@tglx/

KVM/arm64 changes for 6.17, round #1

 - Host driver for GICv5, the next generation interrupt controller for
   arm64, including support for interrupt routing, MSIs, interrupt
   translation and wired interrupts.

 - Use FEAT_GCIE_LEGACY on GICv5 systems to virtualize GICv3 VMs on
   GICv5 hardware, leveraging the legacy VGIC interface.

 - Userspace control of the 'nASSGIcap' GICv3 feature, allowing
   userspace to disable support for SGIs w/o an active state on hardware
   that previously advertised it unconditionally.

 - Map supporting endpoints with cacheable memory attributes on systems
   with FEAT_S2FWB and DIC where KVM no longer needs to perform cache
   maintenance on the address range.

 - Nested support for FEAT_RAS and FEAT_DoubleFault2, allowing the guest
   hypervisor to inject external aborts into an L2 VM and take traps of
   masked external aborts to the hypervisor.

 - Convert more system register sanitization to the config-driven
   implementation.

 - Fixes to the visibility of EL2 registers, namely making VGICv3 system
   registers accessible through the VGIC device instead of the ONE_REG
   vCPU ioctls.

 - Various cleanups and minor fixes.

28 Jul 2025: x86/core for v6.17-rc1 [+ + +]
please pull the x86/core lineup for v6.17-rc1.

Thx.

---

- Add helpers for WB{NO,}INVD with the purpose of using them in KVM and thus
  diminish the number of invalidations needed. With preceding cleanups, as
  always

28 Jul 2025: slab updates for 6.17 [+ + +]
please pull the latest slab updates from:


We've hit a last-minute snag last week when lkp reported [1] the commit
"mm, slab: use frozen pages for large kmalloc" exposed a pre-existing bug
in siw_tcp_sendpages(). Pedro has been fixing it [2] so hopefully that will
result in a PR soon, which you can pull before this one - or perhaps take
the fix directly. If that gets stuck for some reason and taking the fix
later would be unacceptable, I can do another PR with my commit taken out.

[1] https://lore.kernel.org/all/[email protected]/
[2] https://lore.kernel.org/all/[email protected]/

Thanks,
Vlastimil


* Convert struct slab to its own flags instead of referencing page flags,
  which is another preparation step before separating it from struct page
  completely. Along with that, a bunch of documentation fixes and cleanups.
  (Matthew Wilcox)

* Convert large kmalloc to use frozen pages in order to be consistent with
  non-large kmalloc slabs (Vlastimil Babka)

* MAINTAINERS updates (Matthew Wilcox, Lorenzo Stoakes)

* Restore NUMA policy support for large kmalloc, broken by mistake in v6.1
  (Vlastimil Babka)

28 Jul 2025: SPDX/LICENSES update for 6.17-rc1 [+ + +]
LICENSES update for 6.17-rc1

Here are some small changes to the LICENSES files, removing the physical
address of the FSF as the old one was incorrect and they finally no
longer have that listed in the license files.  These updates come
directly from the FSF copies of the files, so they mirror what they want
the files to look like.

Signed-off-by: Greg Kroah-Hartman <[email protected]>

28 Jul 2025: USB/Thunderbolt driver updates for 6.17-rc1 [+ + +]
USB / Thunderbolt changes for 6.17-rc1

Here is the big set of USB and Thunderbolt driver changes for 6.17-rc1.

Lots of little things in here, mostly all small cleanups and updates, no
major new features this development cycle.  Stuff included in here is:
  - xhci minor tweaks for error handling
  - typec minor updates and a driver update
  - gadget driver api cleanups
  - unused function removals
  - unbind memory leak fixes
  - a few new device ids added
  - a few new devices supported for some drivers
  - other minor cleanups and changes

All of these have been in linux-next with no reported issues, with the
leak fixes being in the shortest amount of time, but they are "obviously
correct" :)

Signed-off-by: Greg Kroah-Hartman <[email protected]>

28 Jul 2025: TTY / Serial driver updates for 6.17-rc1 [+ + +]
TTY / Serial driver update for 6.17-rc1

Here is the big set of TTY and Serial driver updates for 6.17-rc1.
Included in here is the following types of changes:
  - another cleanup round from Jiri for the 8250 serial driver and some
    other tty drivers, things are slowly getting better with our apis
    thanks to this work.  This touched many tty drivers all over the
    tree.
  - qcom_geni_serial driver update for new platforms and devices
  - 8250 quirk handling fixups
  - dt serial binding updates for different boards/platforms
  - other minor cleanups and fixes

All of these have been in linux-next with no reported issues.

Signed-off-by: Greg Kroah-Hartman <[email protected]>

28 Jul 2025: Staging driver updates for 6.17-rc1 [+ + +]
Staging changes for 6.17-rc1

Here is the "big" set of staging driver changes for 6.17-rc1.  That's in
quotes as it really isn't all that big of a set of changes this
development cycle at all.

Major things that stand out are:
  - gpib cleanups and tweaks with the majority of the big issues now
    taken care of.  Odds are it will move out of staging/ in the next
    merge window if all goes well.
  - more constant cleanups and layer removals from the rtl8723bs driver.
    It's amazing how many layers deep they really are, all cleanups here
    are great to see
  - axis-fifo sysfs api removed and debugfs api added.  The sysfs api
    didn't work at all so obviously no one was using it.  Add the same
    information into debugfs as that's the proper place for it, and make
    it actually work.
  - Remaining changes is lots of small checkpatch cleanups, most of
    which seem to have come from a Debconf session where people were
    encouraged to submit their first kernel patch, a nice thing to see
    happen again.

All of these have been in linux-next with no reported issues.

Signed-off-by: Greg Kroah-Hartman <[email protected]>

28 Jul 2025: Char/Misc/IIO driver updates for 6.17-rc1 [+ + +]
Char / Misc / IIO / other driver updates for 6.17-rc1

Here is the big set of char/misc/iio and other smaller driver subsystems
for 6.17-rc1.  It's a big set this time around, with the huge majority
being in the iio subsystem with new drivers and dts files being added
there.

Highlights include:
  - IIO driver updates, additions, and changes making more code const
    and cleaning up some init logic
  - bus_type constant conversion changes
  - misc device test functions added
  - rust miscdevice minor fixup
  - unused function removals for some drivers
  - mei driver updates
  - mhi driver updates
  - interconnect driver updates
  - Android binder updates and test infrastructure added
  - small cdx driver updates
  - small comedi fixes
  - small nvmem driver updates
  - small pps driver updates
  - some acrn virt driver fixes for printk messages
  - other small driver updates

All of these have been in linux-next with no reported issues.

Signed-off-by: Greg Kroah-Hartman <[email protected]>

28 Jul 2025: bcachefs changes for 6.17 [+ + +]
Schedule notes for users:

I've been digging through the bug tracker and polling users to see what
bugs are still outstanding, and - it's not much.

So, the experimental label is coming off in 6.18. 

As always, if you do hit a bug, please report it.


bcachefs changes for 6.17-rc1

No noteworthy feature work: we're in hard freeze.

Lots of bugfixes. Assorted user visible changes and fixes:

- Fix a major performance bug when deleting many files: this was caused
  by the key cache caching keys that had been deleted, causing certain
  lookups in the inode triggers to scan excessively.

- The "io_read_nopromote" counter has been broken out into sub-counters;
  these can be seen with 'bcachefs fs top' on a recent bcachefs-tools.
  This helps when diagnosing why reads aren't coming from the cache.

- Congestion tracking is now a bit less aggressive (this controls when
  we decide to do a promote); this area still needs more work.

- Metadata writes are no longer throttled by writeback throttling

- Nocow writes can now be rebalanced (e.g. background_target,
  background_compression options)

- (Almost) all recovery passes now have progress indicators.

- Repair improvements: we'll now reconstruct missing inodes if we find
  contents for that inode (more than one or two keys), not just if the
  inodes btree was damaged: similarly for 'dirent to missing inode'.

- Btree node tracepoint improvements: they've been converted to more
  modern printbuf tracepoints, and include significantly more info.

- Fix in-memory accounting going out of sync with the accounting btree
  when doing accounting updates before going RW.

- BCH_MIN_NR_BUCKETS (minimum number of buckets per device) has been
  increased from 64 to 512. In the unlikely event that anyone anyone
  actually was using bcachefs on sub 128M filesystems and doesn't want
  to lose access (modern tools will format these small filesystems with
  a more appropriate bucket size), please file a report or contact me.

  (This was just a syzbot issue, so far as I know).

- CLASS()/guard() conversion: a great deal of code has been converted to
  the new __cleanup based resource handling, and away from 'goto err'
  cleanup.

28 Jul 2025: x86/bugs for v6.17-rc1 [+ + +]
please pull the x86/bugs lineup for v6.17-rc1.

Thx.

---

- Untangle the Retbleed from the ITS mitigation on Intel. Allow for ITS
  to enable stuffing independently from Retbleed, do some cleanups to
  simplify and streamline the code

- Simplify SRSO and make mitigation types selection more versatile
  depending on the Retbleed mitigation selection. Simplify code some

- Add the second part of the attack vector controls which provide a lot
  friendlier user interface to the speculation mitigations than
  selecting each one by one as it is now.

  Instead, the selection of whole attack vectors which are relevant to
  the system in use can be done and protection against only those
  vectors is enabled, thus giving back some performance to the users

28 Jul 2025: gfs2 changes for 6.17 [+ + +]
please consider pulling the following gfs2 changes for 6.17.

Thanks,
Andreas

gfs2 changes

- Prevent cluster nodes from trying to recover their own filesystems
  during a withdraw.

- Add two missing migrate_folio aops and an additional exhash directory
  consistency check (both triggered by syzbot bug reports).

- Sanitize how dlm results are processed and clean up a few quirks in
  the glock code.

- Minor stuff: Get rid of the GIF_ALLOC_FAILED flag; use SECTOR_SIZE and
  SECTOR_SHIFT.

28 Jul 2025: NFSD changes for v6.17 [+ + +]
NFSD 6.17 Release Notes

NFSD is finally able to offer write delegations to clients that open
files with O_WRONLY, thanks to patches from Dai Ngo. We're expecting
this to accelerate a few interesting corner cases.

The cap on the number of operations per NFSv4 COMPOUND has been
lifted. Now, clients that send COMPOUNDs containing dozens of
operations (for example, a long stream of LOOKUP operations to walk
a pathname in a single round trip) will no longer be rejected.

This release re-enables the ability for NFSD to perform NFSv4.2 COPY
operations asynchronously. This feature has been disabled to
mitigate the risk of denial-of-service when too many such requests
arrive.

Many thanks to the contributors, reviewers, testers, and bug
reporters who participated during the v6.17 development cycle.

28 Jul 2025: EDAC updates for v6.17-rc1 [+ + +]
please pull the EDAC updates for v6.17-rc1.

There's a small merge conflict with upstream, I've added the resolution at the
end of this mail if it helps.

Thx.

---

- i10nm:
 - switch to use scnprintf()
 - Add Granite Rapids-D support

- synopsys: Make sure ECC error and counter registers are cleared during
  init/probing to avoid reporting stale errors

- igen6: Add Wildcat Lake SoCs support

- Make sure scrub features sysfs attributes are initialized properly

- Allocate memory repair sysfs attributes statically to reduce stack
  usage

- Fix DIMM module size computation for DIMMs with total capacity which
  is a non power-of-two number, in amd64_edac

- Do not be too dramatic when reporting disabled memory controllers in
  igen6_edac

- Add support to ie31200_edac for the following SoCs:
 - Core i5-14[67]00
 - Bartless Lake-S SoCs
 - Raptor Lake-HX

28 Jul 2025: KCSAN updates for v6.17 [+ + +]

Many thanks,
-- Marco

------ >8 ------

Kernel Concurrency Sanitizer (KCSAN) updates for v6.17

- A single fix to silence an uninitialized variable warning

This change has had a few days of linux-next exposure.

28 Jul 2025: Documentation for 6.17 [+ + +]
It has been a relatively busy cycle for docs, especially the build system:

- The Perl kernel-doc script was added to 2.3.52pre1 just after the turn of
  the millennium.  Over the following 25 years, it accumulated a vast
  amount of cruft, all in a language few people want to deal with anymore.
  Mauro's Python replacement in 6.16 faithfully reproduced all of the cruft
  in the hope of avoiding regressions.  Now that we have a more reasonable
  code base, though, we can work on cleaning it up; many of the changes
  this time around are toward that end.

- A reorganization of the ext4 docs into the usual TOC format.

- Various Chinese translations and updates.

- A new script from Mauro to help with docs-build testing.

- A new document for linked lists

- A sweep through MAINTAINERS fixing broken GitHub git:// repository links.

...and lots of fixes and updates.

Expect trivial conflicts with the GPIO and block trees.

28 Jul 2025: regmap updates for v6.17 [+ + +]
regmap: Updates for v6.17

A very quiet release for regmap this time, just two cleanup patches and
one almost cleanup patch which saves individual MMIO regmaps flagging
themselves as having fast I/O.

28 Jul 2025: SPI updates for v6.17 [+ + +]
spi: Updates for v6.17

This release is almost entirely driver work, mostly new drivers with the
usual smattering of per driver updates anf fixes, with only trivial
changes in the core.  Highlights include:

 - Quite a bit of maintainence work on the STM32 and Qualcomm drivers.
 - Usage of the newly added devm_dma_request_chan() in the ateml driver,
   pulling in the relevant dmaengine change.
 - Cleanups of our usage of the PM autosuspend functions, this pulls in
   some PM core changes on a shared tag.
 - Support for ADI sigma-delta triggers, Amlogic SPISG, Mediatek MT6991
   and MT8196, Renesas RZ/V2H(P) and SOPHGO SG2042.

28 Jul 2025: regulator updates for v6.17 [+ + +]
regulator: Updates for v6.17

The big change in this release is the addition of Rust bindings from
Daniel Almeida, allowing fairly basic consumer use with support for
enable and voltage setting operations.  This should be good for the vast
majority of consumers.  Otherwise it's been quite quiet, a few new
devices supported, plus some cleanups and fixes.

 - Basic Rust bindings.
 - A fix for making large voltage changes on regulators where we limit
   the size of voltage change we will do in one step, previously we just
   got as close as we could in one step.
 - Cleanups of our usage of the PM autosuspend functions, this pulls in
   some PM core changes on a shared tag.
 - Mode setting support for PCA9450.
 - Support for Mediatek MT6893 and MT8196 DVFSRC, Qualcomm PM7550 and
   PMR735B, Raspberry Pi displays and TI TPS652G1.

The TI driver pulls in the MFD portion of the support for the device and
the pinctrl driver which was in the same tag.

28 Jul 2025: platform-drivers-x86 for v6.17-1 [+ + +]
Here is the main PDx86 PR for v6.17. The changes are mostly contained
within pdx86. Only a minor change to drivers/powercap/intel_rapl_tpmi.c
due to struct renames & move from include to another, and to drm/xe to
correct crashlog related information.

Highlights

 - alienware: Add more precise labels to fans

 - amd/hsmp: Improve misleading probe errors (make the legacy driver
             aware when HSMP is supported through the ACPI driver)

 - amd/pmc: Add Lenovo Yoga 6 13ALCL6 to pmc quirk list

 - drm/xe: Correct (D)VSEC information to support PMT crashlog feature

 - fujitsu: Clamp charge threshold instead of returning an error

 - ideapad: Expore change types

 - intel/pmt:

   - Add PMT Discovery driver

   - Add API to retrieve telemetry regions by feature

   - Fix crashlog NULL access

   - Support Battlemage GPU (BMG) crashlog

 - intel/vsec:

   - Add Discovery feature

   - Add feature dependency support using device links

 - lenovo:

   - Move lenovo drivers under drivers/platform/x86/lenovo/

   - Add WMI drivers for Lenovo Gaming series

   - Improve DMI handling

 - oxpec:

   - Add support for OneXPlayer X1 Mini Pro (Strix Point variant)

   - Fix EC registers for G1 AMD

 - samsung-laptop: Expose change types

 - wmi: Fix WMI device naming issue (same GUID corner cases)

 - x86-android-tables: Add ovc-capacity-table to generic battery nodes

 - Miscellaneous cleanups / refactoring / improvements

Regards, i.


platform-drivers-x86 for v6.17-1

Highlights

 - alienware: Add more precise labels to fans

 - amd/hsmp: Improve misleading probe errors (make the legacy driver
             aware when HSMP is supported through the ACPI driver)

 - amd/pmc: Add Lenovo Yoga 6 13ALCL6 to pmc quirk list

 - drm/xe: Correct (D)VSEC information to support PMT crashlog feature

 - fujitsu: Clamp charge threshold instead of returning an error

 - ideapad: Expore change types

 - intel/pmt:

   - Add PMT Discovery driver

   - Add API to retrieve telemetry regions by feature

   - Fix crashlog NULL access

   - Support Battlemage GPU (BMG) crashlog

 - intel/vsec:

   - Add Discovery feature

   - Add feature dependency support using device links

 - lenovo:

   - Move lenovo drivers under drivers/platform/x86/lenovo/

   - Add WMI drivers for Lenovo Gaming series

   - Improve DMI handling

 - oxpec:

   - Add support for OneXPlayer X1 Mini Pro (Strix Point variant)

   - Fix EC registers for G1 AMD

 - samsung-laptop: Expose change types

 - wmi: Fix WMI device naming issue (same GUID corner cases)

 - x86-android-tables: Add ovc-capacity-table to generic battery nodes

 - Miscellaneous cleanups / refactoring / improvements

The following is an automated shortlog grouped by driver:

Add Lenovo Capability Data 01 WMI Driver:
 - Add Lenovo Capability Data 01 WMI Driver

Add Lenovo Gamezone WMI Driver:
 - Add Lenovo Gamezone WMI Driver

Add Lenovo Other Mode WMI Driver:
 - Add Lenovo Other Mode WMI Driver

Add lenovo-wmi-* driver Documentation:
 - Add lenovo-wmi-* driver Documentation

Add Lenovo WMI Events Driver:
 - Add Lenovo WMI Events Driver

Add lenovo-wmi-helpers:
 - Add lenovo-wmi-helpers

alienware-wmi-wmax:
 -  Add appropriate labels to fans

amd/hsmp:
 -  Enhance the print messages to prevent confusion
 -  Use IS_ENABLED() instead of IS_REACHABLE()

amd: pmc:
 -  Add Lenovo Yoga 6 13ALC6 to pmc quirk list

arm64: lenovo-yoga-c630:
 -  use the auxiliary device creation helper

dell_rbu:
 -  Remove unused struct

dell-uart-backlight:
 -  Use blacklight power constant

docs:
 -  Add ABI documentation for intel_pmt feature directories

Documentation: ABI:
 -  Update WMI device paths in ABI docs

drm/xe:
 -  Correct BMG VSEC header sizing
 -  Correct the rev value for the DVSEC entries

fujitsu:
 -  clamp charge_control_end_threshold values to 50
 -  use unsigned int for kstrtounit

ideapad:
 -  Expose charge_types

intel/pmt:
 -  Add PMT Discovery driver
 -  add register access helpers
 -  correct types
 -  decouple sysfs and namespace

intel/pmt/discovery:
 -  fix format string warning
 -  Fix size_t specifiers for 32-bit
 -  Get telemetry attributes

intel/pmt:
 -  fix a crashlog NULL pointer access
 -  fix build dependency for kunit test
 -  KUNIT test for PMT Enhanced Discovery API
 -  mutex clean up
 -  refactor base parameter
 -  re-order trigger logic
 -  support BMG crashlog

intel/pmt/telemetry:
 -  Add API to retrieve telemetry regions by feature

intel/pmt:
 -  use a version struct
 -  use guard(mutex)
 -  white space cleanup

intel_telemetry:
 -  Remove unused telemetry_*_events()
 -  Remove unused telemetry_[gs]et_sampling_period()
 -  Remove unused telemetry_raw_read_events()

intel/tpmi:
 -  Get OOBMSM CPU mapping from TPMI
 -  Relocate platform info to intel_vsec.h

intel/vsec:
 -  Add device links to enforce dependencies
 -  Add new Discovery feature
 -  Add private data for per-device data
 -  Create wrapper to walk PCI config space
 -  Set OOBMSM to CPU mapping
 -  Skip absent features during initialization
 -  Skip driverless features

lenovo:
 -  gamezone needs "other mode"

lenovo-yoga-tab2-pro-1380-fastcharger:
 -  Use devm_pinctrl_register_mappings()

MAINTAINERS:
 -  Add link to documentation of Intel PMT ABI

Move Lenovo files into lenovo subdir:
 - Move Lenovo files into lenovo subdir

oxpec:
 -  Add support for OneXPlayer X1 Mini Pro (Strix Point)
 -  Fix turbo register for G1 AMD

samsung-laptop:
 -  Expose charge_types

silicom:
 -  remove unnecessary GPIO line direction check

thinklmi:
 -  improved DMI handling

thinkpad_acpi:
 -  Handle KCOV __init vs inline mismatches

wmi:
 -  Fix WMI device naming issue

x86-android-tablets:
 -  Add generic_lipo_4v2_battery info
 -  Add ovc-capacity-table info

Merges:
 -  Merge branch 'fixes' into 'for-next'
 -  Merge branch 'fixes' into for-next

28 Jul 2025: IOMMU Updates for Linux v6.17 [+ + +]
Joerg (CC'd) has been away for a couple of weeks [1] so I've been
handling the IOMMU tree recently and here is the pull request for IOMMU
changes targetting v6.17.

There is a summary in the tag but it's mainly driver updates for x86 and
Arm-based systems. The only real core change is removal of the
'pgsize_bitmap' field from 'struct iommu_ops', along with the necessary
driver updates to go with it.


Cheers,

Will

[1] https://lore.kernel.org/linux-iommu/ojjm5wbqi44t5v2qo752u7q36uvbrda7au5coskjbnxgaom6t5@ebbfcm7zmwfa

--->8

IOMMU Updates for Linux v6.17:

- Core
  * Remove the 'pgsize_bitmap' member from 'struct iommu_ops'
  * Convert the x86 drivers over to msi_create_parent_irq_domain()

- AMD-Vi
  * Add support for examining driver/device internals via debugfs
  * Add support for "HATDis" to disable host translation when it is not
    supported
  * Add support for limiting the maximum host translation level based on
    EFR[HATS]

- Apple DART
  * Don't enable as built-in by default when ARCH_APPLE is selected

- Arm SMMU
  * Devicetree bindings update for the Qualcomm SMMU in the "Milos" SoC
  * Support for Qualcomm SM6115 MDSS parts
  * Disable PRR on Qualcomm SM8250 as using these bits causes the
    hypervisor to explode

- Intel VT-d
  * Reorganize Intel VT-d to be ready for iommupt
  * Optimize iotlb_sync_map for non-caching/non-RWBF modes
  * Fix missed PASID in dev TLB invalidation in cache_tag_flush_all()

- Mediatek
  * Fix build warnings when W=1

- Samsung Exynos
  * Add support for reserved memory regions specified by the bootloader

- TI OMAP
  * Use syscon_regmap_lookup_by_phandle_args() instead of parsing the
    node manually

- Misc
  * Cleanups and minor fixes across the board

28 Jul 2025: power sequencing updates for v6.17-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>


subsystem for v6.17-rc1. We have one new driver and a small set of
improvements as well as a fix to power sequence unit naming.

Thanks,
Bartosz

power sequencing updates for v6.17-rc1

New drivers:
- add a power sequencing driver for the T-HEAD TH1520 GPU

Power sequencing core improvements:
- allow to compile the pwrseq drivers with COMPILE_TEST=y in order to
  improve the build-test coverage
- add named defines for the possible return values of the .match()
  callback and use it in the existing drivers instead of magic values

Fixes:
- Fix the name of the bluetooth-enable unit for WCN6855

28 Jul 2025: gpio updates for v6.17-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>


Here is the big pull-request for the GPIO subsystem for v6.17-rc1. There
will be at least one more later into the merge window, I'll talk about it
in a minute.

There's one new driver (Apple SMC) and extensions to existing drivers for
supporting new HW models. A lot of different impovements across drivers
and in core GPIO code. Details on that are in the signed tag as usual.

We managed to remove some of the legacy APIs. Arnd Bergmann started to
work on making the legacy bits optional so that we may compile them only
for older platforms that still really need them.

Rob Herring has done a lot of work to convert legacy .txt dt-bindings for
GPIO controllers to YAML. There are only a few left now in the GPIO tree.

A big part of the commits in this PR concern the conversion of GPIO
drivers to using the new line value setter callbacks. This conversion
is now complete treewide (unless I've missed something) and once all the
changes from different trees land in mainline, I'll send you another PR
containing a commit dropping the legacy callbacks from the tree.

On that note: the commit I mentioned above is already on the list[1]. I
have a second one that also renames the new callbacks back to their
original name[2]. This is a result of a simple sed over all source files
and a skim over the changes to make sure everything looks ok and to
adjust the formatting. I don't think it makes sense to send 4300+ lines
of diff to the mailing list, Cc'ing 200+ maintainers if all it does is
a simple treewide rename, so would you be willing to accept this commit
too as part of my second PR in order to avoid hundreds of small renaming
patches over the course of the next releases? FYI: it's not in next yet
but it passed all the regular autobuilder tests in my devel branch.

As the quest to pay back technical dept never really ends, we're starting
another set of interface conversions, this time it's about moving fields
specific to only a handful of drivers using the gpio-mmio helper out of
the core gpio_chip structure that every controller implements and uses.
This cycle we introduce a new set of APIs and convert a few drivers under
drivers/gpio/, next cycle we'll convert remaining modules treewide (in
gpio, pinctrl and mfd trees) and finally remove the old interfaces and
move the gpio-mmio fields into their own structure wrapping gpio_chip.

One last change I should mention here is the rework of the sysfs
interface. In 2016, we introduced the GPIO character device as the
preferred alternative to the sysfs class under /sys/class/gpio. While it
has seen a wide adoption with the help of its user-space counterpart -
libgpiod - there are still users who prefer the simplicity of sysfs. As
far as the GPIO subsystem is concerned, the problem is not the existince
of the GPIO class as such but rather the fact that it exposes the global
GPIO numbers to the user-space, stopping us from ever being able to
remove the numberspace from the kernel. To that end, this release we
introduced a parallel, limited sysfs interface that doesn't expose these
numbers and only implements a subset of features that are relevant to the
existing users. This is a result of several discussions over the course
of last year and should allow us to remove the legacy part some time in
the future.

Please consider pulling.

Thanks,
Bartosz

[1] https://lore.kernel.org/all/[email protected]/

gpio updates for v6.17-rc1

GPIOLIB core:
- introduce a parallel, limited sysfs user ABI that doesn't expose the
  global GPIO numbers to user-space while maintaining backward
  compatibility with the end goal of it completely replacing the existing
  interface, allowing us to remove it
- remove the legacy devm_gpio_request() routine which has no more users
- start the process of allowing to compile-out the legacy parts of the
  GPIO core for users who don't need it by introducing a new Kconfig
  option: GPIOLIB_LEGACY
- don't use global GPIO numbers in debugfs output from the core code
  (drivers still do it, the work is ongoing)
- start the process of moving the fields specific to the gpio-mmio helper
  out of the core struct gpio_chip into their own structure that wraps
  it: create a new header with modern interfaces and convert several
  drivers to using it
- remove the platform data structure associated with the gpio-mmio helper
  from the kernel after having converted all remaining users to generic
  device properties
- remove legacy struct gpio definition as it has no more users

New drivers:
- add the GPIO driver for the Apple System Management Controller

Driver improvements:
- add support for new models to gpio-adp5585, gpio-tps65219 and
  gpio-pca953x
- extend the interrupt support in gpio-loongson-64bit
- allow to mark the simulated GPIO lines as invalid in gpio-sim
- convert all remaining GPIO drivers to using the new GPIO value setter
  callbacks
- convert gpio-rcar to using simple device power management ops callbacks
- don't check if current direction of a line is output before setting
  the value in gpio-pisosr and ti-fpc202: the GPIO core already handles
  that
- also drop unneeded GPIO range checks in drivers, the core already makes
  sure we're within bounds when calling driver callbacks
- use dev_fwnode() where applicable across GPIO drivers
- set line value in gpio-zynqmp-modepin and gpio-twl6040 when the user
  wants to change direction of the pin to output even though these
  drivers don't need to do anything else to actually set the direction,
  otherwise a call like gpiod_direction_output(d, 1) will not result in
  the line driver high
- remove the reduntant call to pm_runtime_mark_last_busy() from
  gpio-arizona
- use lock guards in gpio-cadence and gpio-mxc
- check the return values of regmap functions in gpio-wcd934x and
  gpio-tps65912
- use better regmap interfaces in gpio-wcove and gpio-pca953x
- remove dummy GPIO chip callbacks from several drivers in cases where
  the GPIO core can already handle their absence
- allow building gpio-palmas as a module

Fixes:
- use correct bit widths (according to the documentation) in gpio-virtio

Device-tree bindings:
- convert several of the legacy .txt documents for many different devices
  to YAML, improving automatic validation
- create a "trivial" GPIO DT schema that covers a wide range of simple
  hardware that share a set of basic GPIO properties
- document new HW: Apple MAC SMC GPIO block and adp5589 I/O expander
- document a new model for pca95xx
- add and/or remove properties in YAML documents for gpio-rockchip,
  fsl,qoriq-gpio, arm,pl061 and gpio-xilinx

Misc:
- some minor refactoring in several places, adding/removing forward
  declarations, moving defines to better places, constify the arguments
  in some functions, remove duplicate includes, etc.
- documentation updates

28 Jul 2025: pwm: Changes for v6.17-rc1 [+ + +]
Subject: [GIT PULL] pwm: Changes for v6.17-rc1
MIME-Version: 1.0

Hello Linus,

the following changes since commit e04c78d86a9699d136910cfc0bdcf01087e3267e:

  Linux 6.16-rc2 (2025-06-15 13:49:41 -0700)

are available in the Git repository at:

wm/for-6.17-rc1

for you to fetch changes up to 68b9272ca7ac948b71aba482ef8244dee8032f46:

  pwm: raspberrypi-poe: Fix spelling mistake "Firwmware" -> "Firmware" (202=
5-07-24 23:04:16 +0200)

pwm: Changes for v6.17-rc1

Apart from the usual mix of new drivers (pwm-argon-fan-hat), adding
support for variants to existing drivers, minor improvements to both
drivers and docs, device tree documenation updates, the noteworthy
changes are:

 - A pull of pm-runtime-6.17-rc1 to make it possible to apply
   a582469541a3 ("pwm: img: Remove redundant pm_runtime_mark_last_busy()
   calls"). Note this updates the base for my tree to 6.16-rc2.

 - A hwmon companion driver to pwm-mc33xs2410 living in drivers/hwmon
   and acked by Guenter Roeck

 - chardev support for PWM devices
   This leverages atomic PWM updates to userspace and at the same time
   simplifies and accelerates PWM configuration changes.


Lee provided another immutable branch containing patches by Nuno S=E1,
including PWM changes at
-pwm-v6.17
, but I didn't merge it as there is no conflict with my tree and so I
don't see a benefit in polluting the diffstat of this PR. The pwm
related changes in there of course have my blessing anyhow.

The three topmost patches are in next only since next-20250725, the
others are in next since next-20250710. Two of the three "new" patches
are quite simple. The third is the hwmon change, that I didn't want to
hold back to free both the hwmon guys and me from the need to coordinate
this change for a whole development cycle.

I considered waiting a bit with my PR to give these changes a bit more
exposure in next, but giving your travel plans I decided to create it
early as usual.

Diffstat below and thanks too all contributors.


Thanks
Uwe


28 Jul 2025: m68k updates for v6.17 [+ + +]
m68k updates for v6.17

  - Ptdescs conversions,
  - Fix lost column on the graphical debug console,
  - Replace __ASSEMBLY__ with __ASSEMBLER__ in headers,
  - Miscellaneous fixes and improvements,
  - Defconfig updates.

Thanks for pulling!

28 Jul 2025: Scheduler updates for v6.17 [+ + +]



Scheduler updates for v6.17:

Core scheduler changes:

 - Better tracking of maximum lag of tasks in presence of different
   slices duration, for better handling of lag in the fair
   scheduler. (Vincent Guittot)

 - Clean up and standardize #if/#else/#endif markers throughout
   the entire scheduler code base (Ingo Molnar)

 - Make SMP unconditional: build the SMP scheduler's
   data structures and logic on UP kernel too, even though
   they are not used, to simplify the scheduler and remove
   around 200 #ifdef/[#else]/#endif blocks from the
   scheduler. (Ingo Molnar)

 - Reorganize cgroup bandwidth control interface handling
   for better interfacing with sched_ext (Tejun Heo)

Balancing:

 - Bump sd->max_newidle_lb_cost when newidle balance fails (Chris Mason)
 - Remove sched_domain_topology_level::flags to simplify the code (Prateek Nayak)
 - Simplify and clean up build_sched_topology() (Li Chen)
 - Optimize build_sched_topology() on large machines (Li Chen)

Real-time scheduling:

 - Add initial version of proxy execution: a mechanism for mutex-owning
   tasks to inherit the scheduling context of higher priority waiters.
   Currently limited to a single runqueue and conditional on CONFIG_EXPERT,
   and other limitations. (John Stultz, Peter Zijlstra, Valentin Schneider)

 - Deadline scheduler (Juri Lelli):

   - Fix dl_servers initialization order (Juri Lelli)
   - Fix DL scheduler's root domain reinitialization logic (Juri Lelli)
   - Fix accounting bugs after global limits change (Juri Lelli)
   - Fix scalability regression by implementing less agressive dl_server handling
     (Peter Zijlstra)

PSI:

 - Improve scalability by optimizing psi_group_change() cpu_clock() usage
   (Peter Zijlstra)

Rust changes:

 - Make Task, CondVar and PollCondVar methods inline to avoid unnecessary
   function calls (Kunwu Chan, Panagiotis Foliadis)

 - Add might_sleep() support for Rust code: Rust's "#[track_caller]"
   mechanism is used so that Rust's might_sleep() doesn't need to be
   defined as a macro (Fujita Tomonori)

 - Introduce file_from_location() (Boqun Feng)

Debugging & instrumentation:

 - Make clangd usable with scheduler source code files again (Peter Zijlstra)

 - tools: Add root_domains_dump.py which dumps root domains info (Juri Lelli)

 - tools: Add dl_bw_dump.py for printing bandwidth accounting info (Juri Lelli)

Misc cleanups & fixes:

 - Remove play_idle() (Feng Lee)

 - Fix check_preemption_disabled() (Sebastian Andrzej Siewior)

 - Do not call __put_task_struct() on RT if pi_blocked_on is set
   (Luis Claudio R. Goncalves)

 - Correct the comment in place_entity() (wang wei)

 Thanks,

Ingo

28 Jul 2025: chrome-platform updates for v6.17 [+ + +]

Thanks,
Tzung-Bi
------

chrome-platform: Updates for v6.17

* New

  - Support ECC in chromeos_pstore.
  - Allow to control power and data role via sysfs in cros_ec_typec.

* Improvements

  - Defer probe when the dependencies are not ready in cros_ec_typec.
  - Retry when a sensor is not ready in cros_ec_sensorhub.

* Fixes

  - Unregister the blocking notifier as well when unregistering the
    struct cros_ec_device.

* Cleanups

  - Remove redundant code and leverage more suitable helper macro in
    chromeos_laptop.
  - Fix typo.

28 Jul 2025: xen: branch for v6.17-rc1 [+ + +]
Please git pull the following tag:


xen: branch for v6.17-rc1

It contains the following patches:

- A fix for a UAF in the xen gntdev-dmabuf driver
- A fix in the xen netfront driver avoiding spurious interrupts
- A fix in the gntdev driver avoiding a large stack allocation
- A cleanup removing some dead code
- A build warning fix
- A cleanup of the sysfs code in the xen-pciback driver

Thanks.

Juergen

 drivers/net/xen-netfront.c         |  5 ---
28 Jul 2025: Performance events updates for v6.17 [+ + +]



Performance events updates for v6.17:

Intel uncore driver enhancements (Kan Liang):

 - Support MSR portal for discovery tables
 - Support customized MMIO map size
 - Add Panther Lake support
 - Add IMC freerunning support for Panther Lake

 Thanks,

Ingo

28 Jul 2025: erofs updates for 6.17-rc1 [+ + +]
Could you consider this pull request for 6.17-rc1?

In this cycle, metadata compression is now supported due to user
requests [1].  It can be useful for embedded use cases or archiving
a large number of small files.

Additionally, readdir performance has been improved by enabling
readahead (note that it was already common practice for ext3/4 non-dx
and f2fs directories).  We may consider further improvements later to
align with ext4's s_inode_readahead_blks behavior for slow devices too.

The remaining commits are minor.  All commits have been in -next and no
potential merge conflict is observed.

[1] https://issues.redhat.com/browse/RHEL-75783

Thanks,
Gao Xiang 

Changes since last update:

 - Add support for metadata compression;

 - Enable readahead for directories to improve readdir performance;

 - Minor fixes and cleanups.

 
27 Jul 2025: fscrypt updates for 6.17 [+ + +]
Simplify how fscrypt uses the crypto API, resulting in some
significant performance improvements:

 - Drop the incomplete and problematic support for asynchronous
   algorithms. These drivers are bug-prone, and it turns out they are
   actually much slower than the CPU-based code as well.

 - Allocate crypto requests on the stack instead of the heap. This
   improves encryption and decryption performance, especially for
   filenames. It also eliminates a point of failure during I/O.

27 Jul 2025: Crypto library tests for 6.17 [+ + +]
Note: this depends on the "Crypto library updates" pull request and
should be merged after it.


Add KUnit test suites for the Poly1305, SHA-1, SHA-224, SHA-256,
SHA-384, and SHA-512 library functions.

These are the first KUnit tests for lib/crypto/. So in addition to
being useful tests for these specific algorithms, they also establish
some conventions for lib/crypto/ testing going forwards.

The new tests are fairly comprehensive: more comprehensive than the
generic crypto infrastructure's tests. They use a variety of
techniques to check for the types of implementation bugs that tend to
occur in the real world, rather than just naively checking some test
vectors. (Interestingly, poly1305_kunit found a bug in QEMU.)

The core test logic is shared by all six algorithms, rather than being
duplicated for each algorithm.

Each algorithm's test suite also optionally includes a benchmark.

27 Jul 2025: Crypto library updates for 6.17 [+ + +]
Note: there are conflicts with some files in arch/s390/:
arch/s390/crypto/sha1_s390.c and arch/s390/crypto/sha512_s390.c from
mainline, and arch/s390/lib/crypto/sha256.c from the s390 tree.  Just
take the version from this pull request, i.e. delete those files.


This is the main crypto library pull request for 6.17. The main focus
this cycle is on reorganizing the SHA-1 and SHA-2 code, providing
high-quality library APIs for SHA-1 and SHA-2 including HMAC support,
and establishing conventions for lib/crypto/ going forward:

 - Migrate the SHA-1 and SHA-512 code (and also SHA-384 which shares
   most of the SHA-512 code) into lib/crypto/. This includes both the
   generic and architecture-optimized code. Greatly simplify how the
   architecture-optimized code is integrated. Add an easy-to-use
   library API for each SHA variant, including HMAC support. Finally,
   reimplement the crypto_shash support on top of the library API.

 - Apply the same reorganization to the SHA-256 code (and also SHA-224
   which shares most of the SHA-256 code). This is a somewhat smaller
   change, due to my earlier work on SHA-256. But this brings in all
   the same additional improvements that I made for SHA-1 and SHA-512.

There are also some smaller changes:

 - Move the architecture-optimized ChaCha, Poly1305, and BLAKE2s code
   from arch/$(SRCARCH)/lib/crypto/ to lib/crypto/$(SRCARCH)/. For
   these algorithms it's just a move, not a full reorganization yet.

 - Fix the MIPS chacha-core.S to build with the clang assembler.

 - Fix the Poly1305 functions to work in all contexts.

 - Fix a performance regression in the x86_64 Poly1305 code.

 - Clean up the x86_64 SHA-NI optimized SHA-1 assembly code.

Note that since the new organization of the SHA code is much simpler,
the diffstat of this pull request is negative, despite the addition of
new fully-documented library APIs for multiple SHA and HMAC-SHA
variants. These APIs will allow further simplifications across the
kernel as users start using them instead of the old-school crypto API.
(I've already written a lot of such conversion patches, removing over
1000 more lines of code. But most of those will target 6.18 or later.)

27 Jul 2025: Crypto library conversions for 6.17 [+ + +]
Note: this depends on the "Crypto library updates" pull request and
should be merged after it.


Convert fsverity and apparmor to use the SHA-2 library functions
instead of crypto_shash. This is simpler and also slightly faster.

27 Jul 2025: CRC updates for 6.17 [+ + +]
Updates for the kernel's CRC (cyclic redundancy check) code:

 - Reorganize the architecture-optimized CRC code. It now lives in
   lib/crc/$(SRCARCH)/ rather than arch/$(SRCARCH)/lib/, and it is no
   longer artificially split into separate generic and arch modules.
   This allows better inlining and dead code elimination. The generic
   CRC code is also no longer exported, simplifying the API. (This
   mirrors the similar changes to SHA-1 and SHA-2 in lib/crypto/,
   which can be found in the "Crypto library updates" pull request.)

 - Improve crc32c() performance on newer x86_64 CPUs on long messages
   by enabling the VPCLMULQDQ optimized code.

 - Simplify the crypto_shash wrappers for crc32_le() and crc32c().
   Register just one shash algorithm for each that uses the (fully
   optimized) library functions, instead of unnecessarily providing
   direct access to the generic CRC code.

 - Remove unused and obsolete drivers for hardware CRC engines.

 - Remove CRC-32 combination functions that are no longer used.

 - Add kerneldoc for crc32_le(), crc32_be(), and crc32c().

 - Convert the crc32() macro to an inline function.

 
28 Jul 2025: timers/ptp for v6.17-rc1 [+ + +]
please pull the latest timers/ptp branch from:

07-27


Updates for the timekeeping and VDSO code:

  - Introduce support for auxiliary timekeepers

      PTP clocks can be disconnected from the universal CLOCK_TAI reality
      for various reasons including regularatory requirements for
      functional safety redundancy.

      The kernel so far only supports a single notion of time, which means
      that all clocks are correlated in frequency and only differ by
      offset to each other.

      Access to non-correlated PTP clocks has been available so far only
      through the file descriptor based "POSIX clock IDs", which are
      subject to locking and have to go all the way out to the hardware.

      The access is not only horribly slow, as it has to go all the way out
      to the NIC/PTP hardware, but that also prevents the kernel to read
      the time of such clocks e.g. from the network stack, where it is
      required for TSN networking both on the transmit and receive side
      unless the hardware provides offloading.

      The auxiliary clocks provide a mechanism to support arbitrary clocks
      which are not correlated to the system clock. This is not restricted
      to the PTP use case on purpose as there is no kernel side association
      of these clocks to a particular PTP device because that's a pure user
      space configuration decision. Having them independent allows to
      utilize them for other purposes and also enables them to be tested
      without hardware dependencies.

      To avoid pointless overhead these clocks have to be enabled
      individualy via a new sysfs interface to reduce the overhead to a
      single compare in the hotpath if they are enabled at the Kconfig
      level at all.

      These clocks utilize the existing timekeeping/NTP infrastructures,
      which has been made possible over the recent releases by incrementaly
      converting these infrastructures over from a single static instance
      to a multi-instance pointer based implementation without any
      performance regression reported.

      The auxiliary clocks provide the same "emulation" of a "correct"
      clock as the existing CLOCK_* variants do with an independent
      instance of data and provide the same steering mechanism through the
      existing sys_clock_adjtime() interface, which has been confirmed to
      work by the chronyd(8) maintainer.

      That allows to provide lockless kernel internal and VDSO support so
      that applications and kernel internal functionalities can access
      these clocks without restrictions and at the same performance as the
      existing system clocks.

  - Avoid double notifications in the adjtimex() syscall. Not a big issue,
    but a trivial to avoid latency source.

Note: The commits, which provide the new interface ktime_get_clock_ts64()
      for the networking stack along with a temporary define have been
      provided to allow the network folks to proceed with the enablement on
      top of other large scale changes in the related PTP code.

      No merge conflicts expected, just some commits with the same SHA
      coming to you either way depending on merge order.

Thanks,

tglx

28 Jul 2025: irq/drivers for v6.17-rc1 [+ + +]
please pull the latest irq/drivers branch from:

-07-27

PS()


Updates for interrupt chip drivers:

 - Add support of forced affinity setting to yet offline CPUs for the
   MIPS-GIC to ensure that the affinity of per CPU interrupts can be set
   during the early bringup phase of a secondary CPU in the hotplug code
   before the CPU is set online and interrupts are enabled.\

 - Add support for the MIPS (RISC-V !?!?) P8700 SoC in the ACLINT_SSWI
   interrupt chip

 - Make the interrupt routing to RISV-V harts specification compliant so it
   supports arbitrary hart indices

 - Add a command line parameter and related handling to disable the generic
   RISCV IMSIC mechanism on platforms which use a trap-emulated IMSIC.
   Unfortunatly this is required because there is no mechanism available to
   discover this programatically.

 - Enable wakeup sources on the Renesas RZV2H driver

 - Convert interrupt chip drivers, which use a open coded variant of
   msi_create_parent_irq_domain() to use the new functionality

 - Convert interrupt chip drivers, which use the old style two level
   implementation of MSI support over to the MSI parent mechanism to
   prepare for removing at least one of the three PCI/MSI backend variants.

 - The usual cleanups and improvements all over the place

Thanks,

tglx

28 Jul 2025: timers/clocksource for v6.17-rc1 [+ + +]
please pull the latest timers/clocksource branch from:

ce-2025-07-27

om the module conversion


A set of clocksource/event driver updates:

 - Another set of changes to support modular drivers

 - The usual lump of device tree updates to support new variants and to
   cleanup the existing ones

 - The usual small fixes, improvement and cleanups all over the place

Note: All of these commits have been exposed to next with a different SHA
      for quite some time, but had to be rebased due to some late noticed
      S-O-B chain hickups a few days ago.

Thanks,

tglx

28 Jul 2025: timers/core for v6.17-rc1 [+ + +]
please pull the latest timers/core branch from:

-07-27

chdog()

Updates for the timer core:

 - Simplify the logic in the timer migration code

 - Simplify the clocksource code by utilizing the more modern cpumask+*()
   interfaces

Thanks,

tglx

28 Jul 2025: irq/core for v6.17-rc1 [+ + +]
please pull the latest irq/core branch from:

-27


Updates for the interrupt core subsystem:

  - Prevent a interrupt migration related live lock in handle_edge_irq()

    If the interrupt affinity is moved to a new target CPU and the
    interrupt is currently handled on the previous target CPU for edge type
    interrupts the handler might get stuck on the previous target for a
    long time, which causes both involved CPUs to waste cycles and
    eventually run into a soft-lockup situation.

    Solve this by checking whether the interrupt is redirected to a new
    target CPU and if the interrupt is handled on that new target CPU, busy
    wait for completion instead of masking it and sending the pending but
    which would cause the old CPU to re-run the handler and in the worst
    case repeating this excercise for a long time.

    This only works on architectures which use single CPU interrupt
    targets, but that's so far the only ones where this behaviour has been
    observed.

  - Add a kunit test for interrupt disable depth counts

    The nested interrupt disable depth has been an issue in the past
    especially vs. free_irq(), interrupt shutdown and CPU hotplug and their
    interactions. The test exercises the combinations of these scenarios
    and checks for correctness.

Thanks,

tglx

28 Jul 2025: smp/core for v6.17-rc1 [+ + +]
please pull the latest smp/core branch from:

-27


A set of updates for SMP function calls:

  - Improve localitu of smp_call_function_any() by utilizing
    sched_numa_find_nth_cpu() instead of picking a random CPU

  - Wait for work completion in smp_call_function_many_cond() only when
    there was actually work enqueued

  - Simplify functions by unutlizing the appropriate cpumask_*()
    interfaces

  - Trivial cleanups

Thanks,

tglx

28 Jul 2025: irq/msi for v6.17-rc1 [+ + +]
please pull the latest irq/msi branch from:

27


A trivial cleanup in the PCI/MSI code to remove a duplicated back and forth
conversion.

Thanks,

tglx

 
27 Jul 2025: s390 updates for 6.17 merge window [+ + +]
please pull s390 updates for the 6.17 merge window.
There are few merge conflicts with crc, bpf and libcrypto trees.

The crc tree got a conflict in:

  lib/crc/s390/crc32.h

between commit:

  65c9a9f92502 ("s390: Explicitly include <linux/export.h>")

from the s390 tree and commit:

  2374bf238649 ("lib/crc: s390: Migrate optimized CRC code into lib/crc/")

from the crc tree.

Please, take the crc tree version:
https://lore.kernel.org/linux-next/[email protected]/


The bpf-next tree got a conflict in:

  arch/s390/net/bpf_jit.h

between commit:

  42398caf16c9 ("s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers")

from the s390 tree and commit:

  e26d523edf2a ("s390/bpf: Describe the frame using a struct instead of constants")

from the bpf tree.

Please, delete the file:
https://lore.kernel.org/linux-next/[email protected]/


The libcrypto tree got a conflict in:

  arch/s390/lib/crypto/sha256.c

between commit:

  65c9a9f92502 ("s390: Explicitly include <linux/export.h>")

from the s390 tree and commits:

  e96cb9507f2d ("lib/crypto: sha256: Consolidate into single module")
  b8456f7aaf35 ("lib/crypto: s390: Move arch/s390/lib/crypto/ into lib/crypto/")

from the libcrypto tree.

Please, delete the file:
https://lore.kernel.org/linux-next/[email protected]/

Please note, along with arch/s390/lib/crypto/sha256.c above you may get
the below conflicts if the libcrypto tree is merged after the s390 tree.

The libcrypto tree conflict in:

  arch/s390/crypto/sha1_s390.c

between commit:

  68279380266a crypto: s390/sha - Fix uninitialized variable in SHA-1 and SHA-2

from the master tree and commit:

  377982d5618a lib/crypto: s390/sha1: Migrate optimized code into library

from the libcrypto tree.

Please, delete the file:
https://lore.kernel.org/linux-next/[email protected]/


The libcrypto tree conflict in:

  arch/s390/crypto/sha512_s390.c

between commit:

  68279380266a crypto: s390/sha - Fix uninitialized variable in SHA-1 and SHA-2

from the master tree and commits:

  b7b366087e0f lib/crypto: s390/sha512: Migrate optimized SHA-512 code to library
  e0fca177556c crypto: sha512 - Rename conflicting symbols

from the libcrypto tree.

Please, delete the file:
https://lore.kernel.org/linux-next/[email protected]/

Thanks,
Alexander

s390 updates for 6.17 merge window

- Standardize on the __ASSEMBLER__ macro that is provided by GCC
  and Clang compilers and replace __ASSEMBLY__ with  __ASSEMBLER__
  in both uapi and non-uapi headers

- Explicitly include <linux/export.h> in architecture and driver
  files which contain an EXPORT_SYMBOL() and remove the include
  from the files which do not contain the EXPORT_SYMBOL()

- Use the full title of "z/Architecture Principles of Operation"
  manual and the name of a section where facility bits are listed

- Use -D__DISABLE_EXPORTS for files in arch/s390/boot to avoid
  unnecessary slowing down of the build and confusing external
  kABI tools that process symtypes data

- Print additional unrecoverable machine check information to make
  the root cause analysis easier

- Move cmpxchg_user_key() handling to uaccess library code, since
  the generated code is large anyway and there is no benefit if it
  is inlined

- Fix a problem when cmpxchg_user_key() is executing a code with a
  non-default key: if a system is IPL-ed with "LOAD NORMAL", and
  the previous system used storage keys where the fetch-protection
  bit was set for some pages, and the cmpxchg_user_key() is located
  within such page, a protection exception happens

- Either the external call or emergency signal order is used to send
  an IPI to a remote CPU. Use the external order only, since it is at
  least as good and sometimes even better, than the emergency signal

- In case of an early crash the early program check handler prints
  more or less random value of the last breaking event address, since
  it is not initialized properly. Copy the last breaking event address
  from the lowcore to pt_regs to address this

- During STP synchronization check udelay() can not be used, since the
  first CPU modifies tod_clock_base and get_tod_clock_monotonic() might
  return a non-monotonic time. Instead, busy-loop on other CPUs, while
  the the first CPU actually handles the synchronization operation

- When debugging the early kernel boot using QEMU with the -S flag and
  GDB attached, skip the decompressor and start directly in kernel

- Rename PAI Crypto event 4210 according to z16 and z17 "z/Architecture
  Principles of Operation" manual

- Remove the in-kernel time steering support in favour of the new s390
  PTP driver, which allows the kernel clock steered more precisely

- Remove a possible false-positive warning in pte_free_defer(), which
  could be triggered in a valid case KVM guest process is initializing

 
26 Jul 2025: Networking for v6.17 [+ + +]
Networking changes for 6.17.

Core & protocols
26 Jul 2025: execve updates for v6.17 [+ + +]
macro changes touch all the architectures, they are fairly mechanical
and have been in linux-next for almost the entire development window.

Thanks!

-Kees

execve updates for v6.17

- Introduce regular REGSET note macros arch-wide (Dave Martin)

- Remove arbitrary 4K limitation of program header size (Yin Fengwei)

- Reorder function qualifiers for copy_clone_args_from_user() (Dishank Jogi)

26 Jul 2025: soc: updates for 6.17 [+ + +]
This release is smaller than most of the recent ones, at 777 non-merge
changesets, but it does include three newly SoC families, in the soc/newsoc
branch: pxa1908 and sg200 are ported over from arm32 and riscv into arm64,
AX3000 and P1 and new arm64 chip families, and QiLai is a new riscv chip.

Raspberry Pi 5 support gets a boost with support for the RP1 I/O chip,
and there is still a good chunk of new boards and added features for
the usual chip families, mainly nxp, qualcomm, rockchips and renesas.

There were 209 contributors this time, with the most patches coming
from these developers:

     31 Lad Prabhakar
     23 Inochi Amaoto
     21 Krzysztof Kozlowski
     19 Thierry Reding
     17 Chen-Yu Tsai
     15 Frank Li
     15 Dario Binacchi
     15 Andrea della Porta
     15 Alexander Stein
     13 Manivannan Sadhasivam
     13 Diederik de Haas
     12 Potin Lai
     12 Luca Weiss
     12 Linus Walleij
     11 Nicolas Frattaroli
     10 Max Shevchenko
     10 Harshit Shah
     10 Bartosz Golaszewski

The overall diffstat is

   0.3% Documentation/devicetree/bindings/arm/
   0.8% Documentation/devicetree/bindings/memory-controllers/
   0.3% Documentation/devicetree/bindings/pinctrl/
   0.4% Documentation/devicetree/bindings/reset/
   1.8% Documentation/devicetree/bindings/
   4.6% arch/arm/boot/dts/aspeed/
   0.7% arch/arm/boot/dts/broadcom/
   0.6% arch/arm/boot/dts/microchip/
   8.4% arch/arm/boot/dts/nvidia/
   7.8% arch/arm/boot/dts/nxp/imx/
   0.4% arch/arm/boot/dts/nxp/mxs/
   1.3% arch/arm/boot/dts/nxp/vf/
   0.5% arch/arm/boot/dts/st/
   0.4% arch/arm/boot/dts/ti/omap/
   0.7% arch/arm/boot/dts/
   0.7% arch/arm64/boot/dts/allwinner/
   0.5% arch/arm64/boot/dts/amlogic/
   0.3% arch/arm64/boot/dts/apple/
   0.9% arch/arm64/boot/dts/axiado/
   0.7% arch/arm64/boot/dts/broadcom/bcmbca/
   0.4% arch/arm64/boot/dts/broadcom/
   0.5% arch/arm64/boot/dts/cix/
   4.9% arch/arm64/boot/dts/exynos/
   8.9% arch/arm64/boot/dts/freescale/
   1.5% arch/arm64/boot/dts/lg/
   0.9% arch/arm64/boot/dts/marvell/mmp/
   0.5% arch/arm64/boot/dts/mediatek/
   0.8% arch/arm64/boot/dts/nvidia/
   8.0% arch/arm64/boot/dts/qcom/
   5.5% arch/arm64/boot/dts/renesas/
   8.4% arch/arm64/boot/dts/rockchip/
   0.9% arch/arm64/boot/dts/st/
   1.9% arch/arm64/boot/dts/ti/
   0.3% arch/arm64/boot/dts/
   0.3% arch/riscv/boot/dts/andes/
   3.6% arch/riscv/boot/dts/sophgo/
   0.8% arch/riscv/boot/dts/spacemit/
   0.3% arch/
   2.8% drivers/clk/
   0.5% drivers/firmware/
   1.1% drivers/mailbox/
   0.7% drivers/memory/tegra/
   0.5% drivers/misc/rp1/
   3.2% drivers/pinctrl/
   0.9% drivers/reset/
   0.4% drivers/soc/aspeed/
   0.5% drivers/soc/qcom/
   0.3% drivers/soc/renesas/
   1.7% drivers/soc/tegra/cbb/
   0.5% drivers/soc/
   0.4% drivers/
   2.5% include/dt-bindings/clock/
   0.3% include/dt-bindings/memory/
   0.3% include/dt-bindings/reset/
26 Jul 2025: RCU changes for v6.17 [+ + +]
When the merge window opens, please pull this RCU update.

RCU pull request for v6.17

This pull request contains the following branches:

rcu-exp.23.07.2025

  - Protect against early RCU exp quiescent state reporting during exp
    grace period initialization.

  - Remove superfluous barrier in task unblock path.

  - Remove the CPU online quiescent state report optimization, which is
    error prone for certain scenarios.

  - Add warning for unexpected pending requested expedited quiescent
    state on dying CPU.

rcu.22.07.2025

  - Robustify rcu_is_cpu_rrupt_from_idle() by using more accurate
    indicators of the actual context tracking state of a CPU.

  - Handle ->defer_qs_iw_pending field data race.

  - Enable rcu_normal_wake_from_gp by default on systems with <= 16 CPUs.

  - Fix lockup in rcu_read_unlock() due to recursive irq_exit() calls.

  - Refactor expedited handling condition in rcu_read_unlock_special().

  - Documentation updates for hotplug and GP init scan ordering,
    separation of rcu_state and rnp's gp_seq states, quiescent state
    reporting for offline CPUs.

torture-scripts.16.07.2025

  - Cleanup and improve scripts : remove superfluous warnings for disabled
    tests; better handling of kvm.sh --kconfig arg; suppress some confusing
    diagnostics; tolerate bad kvm.sh args; add new diagnostic for build
    output; fail allmodconfig testing on warnings.

  - Include RCU_TORTURE_TEST_CHK_RDR_STATE config for KCSAN kernels.

  - Disable default RCU-tasks and clocksource-wdog testing on arm64.

  - Add EXPERT Kconfig option for arm64 KCSAN runs.

  - Remove SRCU-lite testing.

rcutorture.16.07.2025

  - Start torture writer threads creation after reader threads to handle
    race in SRCU-P scenario.

  - Add SRCU down_read()/up_read() test.

  - Add diagnostics for delayed SRCU up_read(), unmatched up_read(), print
    number of up/down readers and the number of such readers which
    migrated to other CPU.

  - Ignore certain unsupported configurations for trivial RCU test.

  - Fix splats in RT kernels due to inaccurate checks for BH-disabled
    context.

  - Enable checks and logs to capture intentionally exercised unexpected
    scenarios (too short readers) for BUSTED test.

  - Remove SRCU-lite testing.

srcu.19.07.2025

  - Expedite SRCU-fast grace periods.

  - Remove SRCU-lite implementation.

  - Add guards for SRCU-fast readers.

rcu.nocb.18.07.2025

  - Dump NOCB group leader state on stall detection.

  - Robustify nocb_cb_kthread pointer accesses.

  - Fix delayed execution of hurry callbacks when LAZY_RCU is enabled.

refscale.07.07.2025

  - Fix multiplication overflow in "loops" and "nreaders" calculations.

26 Jul 2025: extcon next for 6.17 [+ + +]
Dear Greg,

This is extcon-next pull request. I add detailed description of

Best Regards,
Chanwoo Choi


Update extcon next for v6.17

Detailed description for this pull request:
- Fix wakeup source leaks on device unbind for extcon drivers

- Add new Maxim MAX14526 MUIC extcon driver and dt-binding document
 : The MAX14526 is designed to simplify interface requirements on portable
   devices by multiplexing common inputs (USB, UART, Microphone, Stereo Audio
   and Composite Video) on a single micro/mini USB connector. The USB input
   supports Hi-Speed USB and the audio/video inputs feature
 : This provides the following supported external connector detection
   - EXTCON_USB
   - EXTCON_USB_HOST
   - EXTCON_CHG_USB_FAST
   - EXTCON_DISP_MHL

- Fix buffer overflow detected by linuxtesting.org SVACE on extcon-fsa9480.c

 
25 Jul 2025: Stop-machine change for v6.17 [+ + +]
Once the v6.17 merge window opens, please pull this stop-machine update
from:


stop-machine: Improve documentation

Changes
-------

* Improve kernel-doc function-header comments
* Document preemption and stop_machine() mutual exclusion (Joel Fernandes)

25 Jul 2025: LKMM changes for v6.17 [+ + +]
When the v6.16 merge window opens, please pull this LKMM update from:


lkmm: Update documentation

Changes
-------

* Add wait_event_cmd() and wait_event_exclusive_cmd() to the list of
  wait primitives that provide the needed memory barriers (Håkon Bugge).

25 Jul 2025: Rate-limit changes for v6.17 [+ + +]
When the v6.17 merge window opens, please pull this rate-limit update from:


lib/ratelimit: Add functional and stress tests

Changes
-------

* Add trivial kunit test for ratelimit
* Make the ratelimit test more reliable (Petr Mladek)
* Add stress test for ratelimit

 
26 Jul 2025: i2c-host for v6.17, part 1 [+ + +]
Hi Wolfram,

This is a rather short pull request, likely due to the holiday
season and my own time off.

I plan to send part 2 next week. Some patches depend on the
fixes already sent and tagged as i2c-host-fixes-6.16-rc8[*].
Nevertheless, those patches are already in i2c/i2c-host-next.

I am aware that a few patches are missing from this pull
request. Some were skipped due to lack of time, but not many.
Others are part of larger series that have not yet been properly
reviewed by other subsystems. You pointed out a few of them
yourself.

It has happened before that such series were left hanging, and I
prefer to wait rather than merge something that lacks full
support for generic hardware.

For part 2, I also planned to include the most trivial ones that
were temporarily set aside.

Thanks for reading through this longer message. I wish you a
great weekend,
Andi

[*]https://lore.kernel.org/linux-i2c/ql4g7pi5fk2zedld3d4oq43iqk75pgqvshpmu7awj4et4tf6pg@q4z22o2icwip/T/#u

i2c-host for v6.17, part 1

Cleanups and refactorings:
- lpi2c, riic, st, stm32f7: general improvements
- riic: support more flexible IRQ configurations
- tegra: fix documentation

Improvements:
- lpi2c: improve register polling and add atomic transfer
- imx: use guarded spinlocks

New hardware support:
- Samsung Exynos 2200
- Renesas RZ/T2H (R9A09G077), RZ/N2H (R9A09G087)

DT binding:
- rk3x: enable power domains
- nxp: support clock property

26 Jul 2025: nolibc changes for 6.17 [+ + +]
please find below the nolibc pull request for 6.17.
All changes have been in linux-next for at least two weeks.


nolibc changes for v6.17

Highlights:

* New supported architectures: SuperH, x32, MIPS n32/n64
* Adopt general kernel architectures names
* Integrate the nolibc selftests into the kselftests framework
* Various fixes and new syscall wrappers

Two non-nolibc changes:

* New arm64 selftest which depends on nolibc changes
* General tools/ cross-compilation bugfix for s390 clang

 
25 Jul 2025: KVM: x86: Changes for 6.17 [+ + +]
As promised, the storm has arrived :-)

There are a two anomalies this time around, but thankfully only one conflict,
and a trivial one at that (details on that in the MMIO Stale Data pull request).

1. The "no assignment" pull request depends on the IRQs and MMIO Stale Data
   pull requests.  I created the topic branch based on the IRQs branch (minus
   one commit that came in later), and then merged in the MMIO branch to create
   a common base.  All the commits came out as I wanted, but the diff stats
   generated by `git request-pull` are funky, so I doctored them up, a lot.

2. The "SEV cache maintenance" pull request is based on a tag/branch from the
   tip tree.  I don't think you need to do anything special here?  Except
   possibly mention it to Linus if the KVM pull request happens to get sent
   before the associated tip pull request (which seems unlikely given how they
   send a bunch of small pulls).
25 Jul 2025: arm64 updates for 6.17 [+ + +]
From: Catalin Marinas <[email protected]>


Branch Record Buffer Extensions (BRBE), typical PMU hardware updates,
small additions to MTE for store-only tag checking and exposing
non-address bits to signal handlers, HAVE_LIVEPATCH enabled on arm64,
VMAP_STACK forced on. There is also a TLBI optimisation on hardware that
does not require break-before-make when changing the user PTEs between
contiguous and non-contiguous. These patches touch the iommu/SMMU code.
More details in the tag.

Thanks.

arm64 updates for 6.17:

Perf and PMU updates:

 - Add support for new (v3) Hisilicon SLLC and DDRC PMUs

 - Add support for Arm-NI PMU integrations that share interrupts between
   clock domains within a given instance

 - Allow SPE to be configured with a lower sample period than the
   minimum recommendation advertised by PMSIDR_EL1.Interval

 - Add suppport for Arm's "Branch Record Buffer Extension" (BRBE)

 - Adjust the perf watchdog period according to cpu frequency changes

 - Minor driver fixes and cleanups

Hardware features:

 - Support for MTE store-only checking (FEAT_MTE_STORE_ONLY)

 - Support for reporting the non-address bits during a synchronous MTE
   tag check fault (FEAT_MTE_TAGGED_FAR)

 - Optimise the TLBI when folding/unfolding contiguous PTEs on hardware
   with FEAT_BBM (break-before-make) level 2 and no TLB conflict aborts

Software features:

 - Enable HAVE_LIVEPATCH after implementing arch_stack_walk_reliable()
   and using the text-poke API for late module relocations

 - Force VMAP_STACK always on and change arm64_efi_rt_init() to use
   arch_alloc_vmap_stack() in order to avoid KASAN false positives

ACPI:

 - Improve SPCR handling and messaging on systems lacking an SPCR table

Debug:

 - Simplify the debug exception entry path

 - Drop redundant DBG_MDSCR_* macros

Kselftests:

 - Cleanups and improvements for SME, SVE and FPSIMD tests

Miscellaneous:

 - Optimise loop to reduce redundant operations in contpte_ptep_get()

 - Remove ISB when resetting POR_EL0 during signal handling

 - Mark the kernel as tainted on SEA and SError panic

 - Remove redundant gcs_free() call

25 Jul 2025: sound updates for 6.17-rc1 [+ + +]
please pull sound updates for v6.17-rc1 from:


The topmost commit is bca53a176f3d46fdab67f9e2fb1a185e0233d98d


sound updates for 6.17-rc1

This includes lots of file shuffling due to HD-audio code
reorganization and many trivial changes, but otherwise there shouldn't
be much surprise from the functionality POV.  The PR includes the PM
changes as prerequisite, too.  Some highlights below:

Core:
- Performance optimizations in PCM core code
- Refactoring of ASoC Kconfig menus to be hopefully more consistant
  and easier to navigate.
- Refactoring of ASoC DAPM code, mainly hiding functionality that
  doesn't need to be exposed to drivers

HD-audio reorganization:
- All code are moved under sound/hda with a bit more understandable
  tree structure, as well as file renames
- The huge Realtek driver code is split to several parts, a common
  helper module with driver modules per probe entry
- HDMI and Cirrus codec drivers also split

ASoC:
- Further work on the generic handling for SoundWire SDCA devices
- Support for AMD ACP7.2 and SoundWire on ACP 7.1, Fairphone 4 & 5,
  various Intel systems, Qualcomm QCS8275, Richtek RTQ9124 and TI
  TAS5753

HD-audio and USB-audio:
- TAS2781 driver cleanup and TAS2770 support
- EQ enablement in CA0132 driver
- USB audio quirk code cleanups

Others:
- Cleanups of PM autosuspend call patterns with the update from the PM
  tree
- Lots of strcpy() -> strscpy() conversions for fixed size arrays


25 Jul 2025: vfs 6.17 [+ + +]
This is the batch of pull requests for the v6.17 merge window!

I'm trying something new where I'm attaching a cover letter with a short
summary of all the various pull requests flowing to you during this
cycle.

Lucky for me the v6.17 merge window coincides with me moving. IOW, I'm
currently getting squashed by moving boxes and disassembled furniture.
I'm just happy that I did find my laptop in this mess and I hope there's
no notable effects due to the last couple of weeks.

In any case, this cycle was pretty usual for us given the past years.
We have two new system call additions in core vfs file_getattr() and
file_setattr() which are exensible successors to the legacy ioctl()s.

There's further work in the form of preparatory changes to the directory
locking scheme we currently have; both on the vfs level and for
overlayfs specificall. I want to stress that no actual locking changes
have happened yet and that there's not yet any commitment by us to
actually land any of this.

We have a new bpf kfunc extension for reading extended attributes from
cgroups. This is the first time we're routing bpf patches but I will do
this for all future vfs bpf extensions so we know exactly how and when
something is happening.

There's another round of extensive coredump work. Not just an extension
to the coredump socket but also a rework of the coredump code to just be
more readable and maintainable. I'm somewhat afraid of what I've gotten
myself into by touching that code but hey, that's part of the deal.

We have some work at the intersection of the block and vfs layer in the
form of the new FS_IOC_GETLBMD_CAP ioctl() which returns information
about the files integrity profile for userspace applications that need
to understand a files end-to-end data protection support and configure
the I/O accordingly.

Iomap has been quite active as well with some refactoring and changes to
the infrastucture to extend the abilities of fuse and support large
folios. Hell, if this keeps going on every filesystem will move to fuse
and we'll all be out of a job soon.

There's the usual pile of miscellaneous changes to the vfs layer and
filesystems. No need to cover this in detail here.

We also have some work at the intersection of mm and the vfs by porting
a good chunk of filesystems from f_op->mmap() to the new and better
f_op->mmap_prepare(). I'm going to haunt the relevant developers to
finish this conversion asap because I have no appetite of running around
with yet more duplicated methods than we already have. I mean, we've
just gotten rid of f_op->readdir() last year or so - actually you did.

I'm also routing the usual namespace work. This time in the form of some
minor nsfs extensions by exposing a bunch of uapi symbols that a lot of
userspace already relies on and so we can't change those constants
anyway. That's the root inode number of procfs and the inode numbers of
the initial set of namespaces.

We've also been very active in pidfs which gains a bunch of new features
such as persisent exit and coredump information, extended attributes,
autonomous file handles, and pidfd for reaped task from SCM_PDIFD
messages.

A few minor Rust updates are also in there but they're really not that
interesting at all.

And at last a new struct super_operations method that allows
multi-device filesystems such as btrfs to be informed when a block
device is removed. Since btrfs can survive surprise device removal this
complements the usual ->shutdown() call nicely.

That's all! Expect some slight delay in responses as I'm going to be
preoccupied with the move over the weekend.

Thanks!
Christian
25 Jul 2025: Landlock update for v6.17-rc1 [+ + +]
This PR fixes test issues, improves build compatibility, and adds new tests.

with your master branch.  They have been been tested in the latest
linux-next releases.

Test coverage for security/landlock is unchanged (with Kselftest).

Regards,
 Mickaël

--
Landlock update for v6.17-rc1

 
24 Jul 2025: clk: thead: Updates for v6.17, part 2 [+ + +]
Hi Stephen,

I'm sending this followup PR in case there is still time to include it
for your 6.17 PR. Yao Zi refactored mux clk registration which fixes an
orphan mux clk issue which would occur when booting with mainline uboot.

Thanks,
Drew

T-HEAD clock changes for v6.17, part 2

One more improvement for the T-HEAD TH1520 clock controller this cycle:

Yao Zi has fixed an issue where the c910 mux clk could end up as an
orphan in CCF when the bootloader reparents it to the c910-i0 mux clk.
The solution is to refactor the handling of mux clocks by embedding a
clk_mux structure directly in ccu_mux. This allows the mux clocks to be
registered with devm_clk_hw_register() without allocating any new clk_hw
pointer which solves the orphan issue.

This change has been tested in linux-next. The LPi4a still boots okay
without clk_ignore_unused and peripherals like serial, emmc and ethernet
are functional. The file /sys/kernel/debug/clk/c910/clk_possible_parents
now correctly outputs: "c910-i0 cpu-pll1"

Link: https://lore.kernel.org/linux-riscv/[email protected]/
Signed-off-by: Drew Fustini <[email protected]>

24 Jul 2025: Thermal control updates for v6.17-rc1 [+ + +]
I'm sending this early because I will be mostly offline next week
and I'm not planning to add anything to it.


 thermal-6.17-rc1


 Merge back earlier thermal control updates for 6.17


 Linux 6.16-rc5

to receive thermal control updates for 6.17-rc1.

These update the thermal control sysfs interface and multiple thermal
control drivers:

 - Convert EAGAIN into ENODATA in temp_show() to prevent user space from
   polling the sysfs file in vain after a failing O_NONBLOCK read under
   the assumption that the read would have blocked (Hsin-Te Yuan)

 - Add Wildcat Lake PCI ID to the int340x Intel processor thermal driver
   (Srinivas Pandruvada)

 - Add debugfs interface to override the temperature set by the firmware
   in the Intel platform temperature control (PTC) interface and add a
   new sysfs control attribute called thermal_tolerance to it (Srinivas
   Pandruvada)

 - Enable the stage 2 shutdown in the qcom-spmi-temp-alarm thermal
   driver and add support for more SPMI variants to it (Anjelique
   Melendez)

 - Constify the thermal_zone_device_ops structure where possible in
   several assorted thermal drivers (Christophe Jaillet)

 - Use the dev_fwnode() helper instead of of_fwnode_handle(), as it is
   more adequate, wherever possible in thermal drivers (Jiri Slaby)

 - Implement and document One-Time Programmable fuse support in the
   Rockchip thermal driver in order to increase the precision of the
   measurements (Nicolas Frattaroli)

 - Change the way the Mediatek LTVS thermal driver stores the
   initialization data sequence to support different sequences
   matching different platforms. Introduce mt7988 support with
   a new initialization sequence (Mason Chang)

 - Document the QCom TSens Milos Temperature Sensor DT bindings (Luca
   Weiss)

 - Add the fallback compatible string for MT7981 and MT8516 DT bindings
   (Aleksander Jan Bajkowski)

 - Add the compatible string for the Tegra210B01 SOC_THERM driver (Aaron
   Kling)

Thanks!



24 Jul 2025: ACPI updates for v6.17-rc1 [+ + +]
I'm sending this early because I will be mostly offline next week
and I'm not planning to add anything to it.


 acpi-6.17-rc1


 Merge branch 'acpi-misc'


 Linux 6.16-rc7

to receive ACPI updates for 6.17-rc1.

These update APEI (new EINJv2 error injection, assorted fixes), fix the
ACPI processor driver, update the legacy ACPI /proc interface (multiple
assorted fixes of minor issues) and several assorted ACPI drivers (minor
fixes and cleanups):

 - Printing the address in acpi_ex_trace_point() is either incorrect
   during early kernel boot or not really useful later when pathnames
   resolve properly, so stop doing it (Mario Limonciello)

 - Address several minor issues in the legacy ACPI proc interface (Andy
   Shevchenko)

 - Fix acpi_object union initialization in the ACPI processor driver to
   avoid using memory that contains leftover data (Sebastian Ott)

 - Make the ACPI processor perflib driver take the initial _PPC limit
   into account as appropriate (Jiayi Li)

 - Fix message formatting in the ACPI processor throttling driver and
   in the ACPI PCI link driver (Colin Ian King)

 - Clean up general ACPI PM domain handling (Rafael Wysocki)

 - Fix iomem-related sparse warnings in the APEI EINJ driver (Zaid
   Alali, Tony Luck)

 - Add EINJv2 error injection support to the APEI EINJ driver (Zaid
   Alali)

 - Fix memory corruption in error_type_set() in the APEI EINJ driver (Dan
   Carpenter)

 - Fix less than zero comparison on a size_t variable in the APEI EINJ
   driver (Colin Ian King)

 - Fix check and iounmap of an uninitialized pointer in the APEI EINJ
   driver (Colin Ian King)

 - Add TAINT_MACHINE_CHECK to the GHES panic path in APEI to improve
   diagnostics and post-mortem analysis (Breno Leitao)

 - Update APEI reviewer records and other ACPI-related information in
   MAINTAINERS as well as the contact information in the ACPI ABI
   documentation (Rafael Wysocki)

 - Fix the handling of synchronous uncorrected memory errors in APEI
   (Shuai Xue)

 - Remove an AudioDSP-related ID from the ACPI LPSS driver (Andy
   Shevchenko)

 - Replace sprintf()/scnprintf() with sysfs_emit() in the ACPI fan
   driver and update a debug message in fan_get_state_acpi4() (Eslam
   Khafagy, Abdelrahman Fekry, Sumeet Pawnikar)

 - Add Intel Wildcat Lake support to the ACPI DPTF driver (Srinivas
   Pandruvada)

 - Add more debug information regarding failing firmware updates to the
   ACPI pfr_update driver (Chen Yu)

 - Reduce the verbosity of the ACPI PRM (platform runtime mechanism)
   driver to avoid user confusion (Zhu Qiyu)

 - Replace sprintf() with sysfs_emit() in the ACPI TAD (time and alarm
   device) driver (Sukrut Heroorkar)

 - Enable CONFIG_ACPI_DEBUG by default to make it easier to get ACPI
   debug messages from OEM platforms (Mario Limonciello)

 - Fix parent device references in ASL examples in the ACPI
   documentation and fix spelling and style in the gpio-properties
   documentation in firmware-guide (Andy Shevchenko)

 - Fix typos in ACPI documentation and comments (Bjorn Helgaas)

Thanks!



24 Jul 2025: Power management updates for v6.17-rc1 [+ + +]
I'm sending this early because I will be mostly offline next week
and I'm not planning to add anything to it.


 pm-6.17-rc1




 PM: sleep: Update power.completion for all devices on errors

to receive power management updates for 6.17-rc1.

Traditionally, cpufreq is the part with the largest number of updates
that include core fixes and cleanups as well as updates of several
assorted drivers, but there are also quite a few updates related
to system sleep, mostly focused on asynchronous suspend and resume of
devices and on making the integration of system suspend and resume with
runtime PM easier.

Runtime PM is also updated to allow some code duplication in drivers
to be eliminated going forward and to work more consistently overall
in some cases.

Apart from that, there are some driver core updates related to PM
domains that should help to address ordering issues with devm_ cleanup
routines relying on PM domains, some assorted devfreq updates including
core fixes and cleanups, tooling updates, and documentation and
MAINTAINERS updates.

Specifics:

 - Fix two initialization ordering issues in the cpufreq core and a
   governor initialization error path in it, and clean it up (Lifeng
   Zheng)

 - Add Granite Rapids support in no-HWP mode to the intel_pstate cpufreq
   driver (Li RongQing)

 - Make intel_pstate always use HWP_DESIRED_PERF when operating in the
   passive mode (Rafael Wysocki)

 - Allow building the tegra124 cpufreq driver as a module (Aaron Kling)

 - Do minor cleanups for Rust cpufreq and cpumask APIs and fix MAINTAINERS
   entry for cpu.rs (Abhinav Ananthu, Ritvik Gupta, Lukas Bulwahn)

 - Clean up assorted cpufreq drivers (Arnd Bergmann, Dan Carpenter,
   Krzysztof Kozlowski, Sven Peter, Svyatoslav Ryhel, Lifeng Zheng)

 - Add the NEED_UPDATE_LIMITS flag to the CPPC cpufreq driver (Prashant
   Malani)

 - Fix minimum performance state label error in the amd-pstate driver
   documentation (Shouye Liu)

 - Add the CPUFREQ_GOV_STRICT_TARGET flag to the userspace cpufreq
   governor and explain HW coordination influence on it in the
   documentation (Shashank Balaji)

 - Fix opencoded for_each_cpu() in idle_state_valid() in the DT cpuidle
   driver (Yury Norov)

 - Remove info about non-existing QoS interfaces from the PM QoS
   documentation (Ulf Hansson)

 - Use c_* types via kernel prelude in Rust for OPP (Abhinav Ananthu)

 - Add HiSilicon uncore frequency scaling driver to devfreq (Jie Zhan)

 - Allow devfreq drivers to add custom sysfs ABIs (Jie Zhan)

 - Simplify the sun8i-a33-mbus devfreq driver by using more devm
   functions (Uwe Kleine-K=C3=B6nig)

 - Fix an index typo in trans_stat() in devfreq (Chanwoo Choi)

 - Check devfreq governor before using governor->name (Lifeng Zheng)

 - Remove a redundant devfreq_get_freq_range() call from
   devfreq_add_device() (Lifeng Zheng)

 - Limit max_freq with scaling_min_freq in devfreq (Lifeng Zheng)

 - Replace sscanf() with kstrtoul() in set_freq_store() (Lifeng Zheng)

 - Extend the asynchronous suspend and resume of devices to handle
   suppliers like parents and consumers like children (Rafael Wysocki)

 - Make pm_runtime_force_resume() work for drivers that set the
   DPM_FLAG_SMART_SUSPEND flag and allow PCI drivers and drivers that
   collaborate with the general ACPI PM domain to set it (Rafael
   Wysocki)

 - Add kernel parameter to disable asynchronous suspend/resume of
   devices (Tudor Ambarus)

 - Drop redundant might_sleep() calls from some functions in the device
   suspend/resume core code (Zhongqiu Han)

 - Fix the handling of monitors connected right before waking up the
   system from sleep (tuhaowen)

 - Clean up MAINTAINERS entries for suspend and hibernation (Rafael
   Wysocki)

 - Fix error code path in the KEXEC_JUMP flow and drop a redundant
   pm_restore_gfp_mask() call from it (Rafael Wysocki)

 - Rearrange suspend/resume error handling in the core device suspend
   and resume code (Rafael Wysocki)

 - Fix up white space that does not follow coding style in the
   hibernation core code (Darshan Rathod)

 - Document return values of suspend-related API functions in the
   runtime PM framework (Sakari Ailus)

 - Mark last busy stamp in multiple autosuspend-related functions in the
   runtime PM framework and update its documentation (Sakari Ailus)

 - Take active children into account in pm_runtime_get_if_in_use() for
   consistency (Rafael Wysocki)

 - Fix NULL pointer dereference in get_pd_power_uw() in the dtpm_cpu
   power capping driver (Sivan Zohar-Kotzer)

 - Add support for the Bartlett Lake platform to the Intel RAPL power
   capping driver (Qiao Wei)

 - Add PL4 support for Panther Lake to the intel_rapl_msr power capping
   driver (Zhang Rui)

 - Update contact information in the PM ABI docs and maintainer
   information in the power domains DT binding (Rafael Wysocki)

 - Update PM header inclusions to follow the IWYU (Include What You Use)
   principle (Andy Shevchenko)

 - Add flags to specify power on attach/detach for PM domains, make the
   driver core detach PM domains in device_unbind_cleanup(), and drop
   the dev_pm_domain_detach() call from the platform bus type (Claudiu
   Beznea)

 - Improve Python binding's Makefile for cpupower (John B. Wyatt IV)

 - Fix printing of CORE, CPU fields in cpupower-monitor (Gautham Shenoy)

Thanks!



24 Jul 2025: USB serial device id for 6.17-rc1 [+ + +]
USB serial device id for 6.17-rc1

Here's a new modem device id.

This has been in linux-next with no reported issues.

24 Jul 2025: USB serial updates for 6.17-rc1 [+ + +]
USB serial updates for 6.17-rc1

Here are the USB serial updates for 6.17-rc1, including

 - switch to new gpiolib interface that can return errors

All have been in linux-next with no reported issues.

24 Jul 2025: interconnect changes for 6.17 [+ + +]
This is the pull request with interconnect changes for the v6.17-rc1 merge
window. This time it contains only driver changes. As always, the summary
is in the signed tag.

All patches have been in linux-next during the last few days. There are

Thanks,
Georgi


interconnect changes for 6.17

This pull request contains the interconnect changes for the 6.17-rc1
merge window. It contains only driver changes.

Driver changes:
- SC8180X and SC8280XP driver fixes
- Add new driver for the Qualcomm Milos SoC
- Add Support for EPSS L3 hardware in QCS8300 SoC
- DT bindings fixes and other cleanups

Signed-off-by: Georgi Djakov <[email protected]>

 
23 Jul 2025: clk: imx: Updates for v6.17 [+ + +]
i.MX clock changes for 6.17

- Document bindings for i.MX94 LVDS/Display CSR
- Fix synchronous abort in i.MX95 BLK CTL driver
- Rename LVDS and displaymix CSR BLK needed for supporting i.MX943
- Add i.MX94 LVDS/Display CSR clock to the i.MX95 BLK CTL
- Update MAINTAINERS entry to include both nxp,imx* and fsl,imx*

23 Jul 2025: samsung: drivers for v6.17 [+ + +]
Hi,

Late pull with minor things.

Best regards,
Krzysztof


Samsung SoC drivers for v6.17

1. Google GS101: Minor improvement PMU binding.
2. ExynosAutov920: Add HSI2 system registers binding.

23 Jul 2025: Btrfs updates for 6.17 [+ + +]
Hi,

there's are number of usability and feature updates, scattered
performance improvements and fixes.  Highlight of the core changes is
getting closer to enabling large folios (now behind a config option).


User visible changes:

- update defrag ioctl, add new flag to request no compression on
  existing extents

- restrict writes to block devices after mount

- in experimental config, enable large folios for data, almost complete
  but not widely tested

- add stats tracking duration of critical section in transaction commit
  to /sys/fs/btrfs/FSID/commit_stats

Performance improvements:

- caching of lookup results of free space bitmap (20% runtime
  improvement on an empty file creation benchmark)

- accessors to metadata (b-tree items) simplified and optimized, minor
  improvement in metadata-heavy workloads

- readahead on compressed data improves sequential read

- the xarray for extent buffers is indexed by denser keys, leading to
  better packing of the nodes (50-70% reduction of leaf nodes)

Notable fixes:

- stricter compression mount option parsing

- send properly emits fallocate command for file holes when protocol v2
  is used

- fix overallocation of chunks with mount option 'ssd_spread', due to
  interaction with size classes not finding the right chunk (workaround:
  manual reclaim by 'usage' balance filter)

- various quota enable/disable races with rescan, more verbose
  notifications about inconsistent state

- populate otime in tree-log during log replay

- handle ENOSPC when NOCOW file is used with mmap()

Core:

- large data folios enabled in experimental config

- improved error handling, transaction abort call sites

- in zoned mode, allocate reloc block group on mount to make sure
  there's always one available for zone reclaim under heavy load

- rework device opening, they're always open as read-only and delayed
  until the super block is created, allowing the restricted writes after
  mount

- preparatory work for adding blk_holder_ops, allowing device
  freeze/thaw in the future

Cleanups, refactoring:

- type and naming unifications (int/bool, return variables)

- rb-tree helper refactoring and simplifications

- reorder memory allocations to less critical places

- RCU string (used for device name) refactoring and API removal

- replace all remaining use of strcpy()

 
22 Jul 2025: timer drivers for v6.17-rc1 [+ + +]
- Add the module owner to all the drivers which can be converted into
   modules in order to have the core time framework to take the
   refcount and prevent wild module removal. In addition export the
   symbols for the sched_clock_register() function to allow the drivers
   to be converted into modules (Daniel Lezcano)

- Convert the faraday,fttmr010 DT bindings to yaml schema (Rob
   Herring)

- Add the DT bindings compatible string for the MT6572 (Max
   Shevchenko)

- Fix the fsl,ftm-timer bindings by using the items to describe a
   register (Frank Li)
Chen Ni <[email protected]>
- Add the DT binding documentation for Andes machine timer (Ben
   Zong-You Xie)

- Fix the exynos mct driver to allow the module support. The changes
   include fixing the empty IRQ name, changing to percpu interrupts and
   preventing to use the clocksource as a sched clock source on ARM64
   (Will McVicker)

- Avoid 64-bit divide operation which fails on xtensa and simplify the
   timeleft computation with 32 bits operations on Tegra186 (Guenter
   Roeck)

- Add the fsl,timrot.yaml DT bindings for i.MX23/i.MX28 timer (Frank
   Li)

- Replace comma by semicolon which were introduced when moving the
   static structure initialization (Chen Ni)

- Add a new compatible for the MediaTek MT8196 SoC, fully compatible
   with MT6765 (AngeloGioacchino Del Regno)

- Fix section mismatch from the module Exynos MCT conversion (Daniel
   Lezcano)

22 Jul 2025: Apple SoC driver changes for v6.17 [+ + +]
Hi Arnd,

Sorry for the very late pull requests this time, last weeks at work have been very
busy and I wasn't able to find time earlier.

This time we have two PRs for 6.17, the details are also in the signed tags:

- Driver updates which include making a rtkit memory management callback
  optional and dropping default ARCH_APPLE from our drivers in Kconfig.
  I wanted to instead select these in defconfig but that change isn't ready
  for this cycle.

- Device tree updates which include the bindings and nodes for our GPU driver.
  The driver itself isn't ready yet mainly due to rust dependencies but we're
  confident about the bindings and want to commit to keeping them stable.
  Otherwise there are a two smaller changes: removing another W=1 warning
  (which required a change to the binding itelf that'll also land in 6.17
  through the NVMEM tree) and adding a missing touchbar framebuffer node to
  the Apple T2 SoC device tree.


Best,


Sven



Apple SoC driver changes for v6.17

- Dropped default ARCH_APPLE from Kconfig
- Made shmem_destroy for coprocessor-managed buffers in the rtkit
  library optional since it's not required for e.g. SMC

Signed-off-by: Sven Peter <[email protected]>

22 Jul 2025: thermal drivers for v6.17 [+ + +]
Hi Rafael,

please consider the following changes since commit 
d7b8f8e20813f0179d8ef519541a3527e7661d3a:

   Linux 6.16-rc5 (2025-07-06 14:10:26 -0700)

are available in the Git repository at:

  
ssh://[email protected]/pub/scm/linux/kernel/git/thermal/linux.git 
tags/thermal-v6.17-rc1

for you to fetch changes up to 1d264d3a198839c7483580acdce17e1015d0ef91:

   dt-bindings: thermal: tegra: Document Tegra210B01 (2025-07-21 
22:23:39 +0200)

- Enable the stage 2 shutdown and support to more SPMI variants
   (Anjelique Melendez)

- Constify thermal_zone_device_ops structure when possible in the
   different thermal drivers (Christophe Jaillet)

- Use the dev_fwnode() helper instead of of_fwnode_handle() which is
   more adequate wherever is possible in the thermal drivers (Jiri
   Slaby)

- Implement and document One-Time Programmable fuse support for the
   Rockchip driver in order to increase the precision of the
   measurements (Nicolas Frattaroli)

- Change the way the Mediatek LTVS driver stores the initialization
   data sequence to support different sequences regarding the current
   platform. Introduce the mt7988 support with a new initialization
   sequence (Mason Chang)

- Document the QCom TSens Milos Temperature Sensor DT bindings (Luca
   Weiss)

- Add the fallback compatible string for MT7981 and MT8516 DT bindings
   (Aleksander Jan Bajkowski)

- Add the compatible string for Tegra210B01 SOC_THERM driver (Aaron Kling)

22 Jul 2025: LoongArch KVM changes for v6.17 [+ + +]
LoongArch KVM changes for v6.17

1. Simplify some KVM routines.
2. Enhance in-kernel irqchip emulation.
3. Add stat information with kernel irqchip.
4. Add tracepoints for CPUCFG and CSR emulation exits.

 
19 Jul 2025: clk: thead: Updates for v6.17 [+ + +]
T-HEAD clock changes for v6.17

Updates for the T-HEAD TH1520 clock controller:

 - Fix the parent data for osc_12m by referencing osc_24m by index.
 - Mark essential bus clocks as CLK_IGNORE_UNUSED to fix boot hang
   associated with the PVT sensor.

All changes have tested in linux-next.

Signed-off-by: Drew Fustini <[email protected]>

19 Jul 2025: RISC-V T-HEAD Devicetrees for v6.17 [+ + +]
Hi Arnd,

have been tested in linux-next.

Thanks,
Drew

T-HEAD Devicetrees for v6.17

There are several additions for the T-Head TH1520 SoC:

 - Add PVT node for thermal sensor which works with the existing Moortec
   MR75203 driver.
 - Add "gpu-clkgen" reset property to the AON node which allows the power
   domain driver to detect the capability to power sequence the GPU.

All of these patches have been tested in linux-next.

Signed-off-by: Drew Fustini <[email protected]>

19 Jul 2025: devfreq next for 6.17 [+ + +]
Dear Rafael,

This is devfreq-next pull request for v6.17. I add detailed description of
following updates.

Best Regards,
Chanwoo Choi


Update devfreq next for v6.17

Detailed description for this pull request:
- Clean devfreq core and fix bugs
 : Replace sscanf with kstrtoul
 : Remove redundant devfreq_get_freq_range() on adding devfreq driver
 : Check missing NULL pointer check on removing devfreq driver
 : Limit max_freq and min_freq to avoid unreachable value
 : Fix wrong index on trans_stat sysfs node

- Use devm_* managed function for clock control on sun81-a33-mbus driver

- Add HiSilicon uncore frequencye scaling driver for for HiSilicon Kunpeng SoCs
 : The uncore domain includes shared system resources such as interconnects
 and L3 cache, and its frequency has a significant impact on system performance
 and power consumption. The driver provides the following functions:
   - Support to scale frequency scaling with governor and user setting
   - Support to query CPUs whose performance is closely related to the uncore domain
   - Communication with the platform controller via an ACPI PCC mailbox
     to perform actual frequency changes

 
16 Jul 2025: [PATCH 0/9] Locking changes for v6.17 [+ + +]
Hi Ingo & Peter,

is that I would like to add Breno Leitao's workaround in
lockdep_unregister_key(), since the alternative requires hazptr and I'm
not near to get it done. I added comments explaining this and left a
TODO there, and I will replace it once the shazptr patch is in a good
shape. Peter, if you have any concern about it, either we can drop the
patch #9 or I can create another tag. Thanks!

Locking changes for v6.17:

- General
  - Mark devm_mutex_init() as __must_check
  - Add #[must_use] to Lock::try_lock()
  - Remove OWNER_SPINNABLE in rwsem
  - Remove redundant #ifdefs in mutex
- Lockdep
  - Avoid returning struct in lock_stats()
  - Change `static const` into enum for LOCKF_*_IRQ_*
  - Temporarily use synchronize_rcu_expedited() in
    lockdep_unregister_key() to speed things up.

 
15 Jul 2025: arm64: dts: ti: K3 devicetree updates for v6.17 [+ + +]
 protected-headers="v1"
From: Vignesh Raghavendra <[email protected]>
To: Olof Johansson <[email protected]>, Arnd Bergmann <[email protected]>,
 arm-soc <[email protected]>, SoC <[email protected]>
Cc: Tero Kristo <[email protected]>, [email protected],
 [email protected], Nishanth Menon <[email protected]>,
 Vignesh Raghavendra <[email protected]>
Message-ID: <[email protected]>
Subject: [GIT PULL 1/2] arm64: dts: ti: K3 devicetree updates for v6.17

--------------KA7pmDFiVxYyypQPm8tZdgv5

Hi ARM SoC Maintainers,

TI K3 device tree updates for v6.17

Generic fixes and cleanups:
* Enable overlays for all DTB files
* Enable Schmitt Trigger by default in K3 pinctrl

SoC specific changes:
AM62D
* Add new SoC support and pinctrl entries

AM62
* Remove eMMC High Speed DDR support
* Move eMMC pinmux to top level board file

J784S4/J742S2
* Add Power on BIST (PBSIT) nodes
* Add ACSPCIE1 node

J721S2
* Add McASP support

J722S
* Add alernate audio-refclk0 node

Board changes:
Multiple boards
* Bootphase tags for Ethernet boot support

AM62D2-EVM
* Add new board support

AM62A7-SK
* Fix pinmux for main_uart1
* Add SPI NAND support

AM62P
* Fix PWM_3_DSI GPIO direction, SD pull up, I2C ups on AM62P-Verdin
* Add bootph-all property for Ethernet boot

AM62-Verdin
* Enable pull-ups on I2C buses

AM654-base-board
* Add boot phase tags for various bootmodes

AM64
* Add boot phase tag PCIe EP boot
* Fix PRU-ICSSG Ethernet ports on AM642-PhyBoard-Electra

AM69-SK
* Add idle-states for remaining SERDES instances

J722S-EVM
* Fix USB gpio-hog level for Type-C

15 Jul 2025: Rust ALLOC & DMA for v6.17 [+ + +]
Hi Miguel,


All commits have been in linux-next for a couple of weeks. I did a test mer=
ge
without any conflicts.

- Danilo

Alloc & DMA changes for v6.17

Box:
  - Implement Borrow / BorrowMut for Box<T, A>.

Vec:
  - Implement Default for Vec<T, A>.

  - Implement Borrow / BorrowMut for Vec<T, A>.

DMA:
  - Clarify wording and be consistent in 'coherent' nomenclature.

  - Convert the read!() / write!() macros to return a Result.

  - Add as_slice() / write() methods in CoherentAllocation.

  - Fix doc-comment of dma_handle().

  - Expose count() and size() in CoherentAllocation and add the
    corresponding type invariants.

  - Implement CoherentAllocation::dma_handle_with_offset().

  - Require mutable reference for as_slice_mut() and write().

- Add Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki and Lorenzo Stoake=
s
  as reviewers (thanks everyone).

15 Jul 2025: pinctrl: samsung: drivers for v6.17 [+ + +]
Samsung pinctrl drivers changes for v6.17

Add support for programming wake up for Google GS101 SoC pin
controllers, so the SoC can be properly woken up from low power states.

15 Jul 2025: memory: drivers for v6.17 [+ + +]
Memory controller drivers for v6.17

1. Several cleanups: Use dev_fwnode() in OMAP GPMX, convert
   arm,pl172.txt DT bindings to DT schema, use
   syscon_regmap_lookup_by_phandle_args() wrapper, correct kerneldoc.

2. Mediatek MT8186 SMI: Extend hardware bandwidth limits to fix VENC
   hardware during stress testing.

3. Broadcom brcmstb_memc: Add additional fallback compatible and
   simplify device driver matching.  The change comes from Broadcom
   SoC maintainer (Florian Fainelli), thus its ABI impact is
   acknowledged.

 
14 Jul 2025: [PULL REQUEST] Intel IOMMU updates for v6.17 [+ + +]
Hi Joerg,

 
10 Jul 2025: SOC FSL for 6.17 [+ + +]
Hi Arnd,


The tegra change is outside soc/fsl tree but it is acked by maintainer 
of DRM DRIVERS FOR NVIDIA TEGRA.

Thanks
Christophe

FSL SOC Changes for 6.17:
- Use dev_fwnode() instead of of_fwnode_handle()
- Use new GPIO line value setter callbacks

10 Jul 2025: aspeed: drivers changes for 6.17 [+ + +]
I've done further rework to the ASPEED LPC snoop driver in addition to
the immediate fixes found in the PR at [1]. The commits in the tag for
this PR build directly on top, so those from [1] are also listed in the
shortlog relative to v6.16-rc1.

[1]: https://lore.kernel.org/all/d119a7b44b25a1e55a710adec7fce3e9a9fc898e.c=
[email protected]/

Let me know if I should arrange the changes (or the PR description) in
some other way.

Cheers,

Andrew

ASPEED SoC driver updates for 6.17

The ASPEED LPC snoop driver was recently the cause of some concern. In addi=
tion
to the initial fixes, the channel configuration paths are refactored to imp=
rove
robustness against errors.

10 Jul 2025: aspeed: devicetree changes for 6.17 [+ + +]
ASPEED devicetree updates for 6.17

Removed platforms:

- IBM's Swift BMC

New platforms:

- Meta's Santabarbara

  Santabarbara is a compute node with an accelerator module

- NVIDIA's GB200NVL BMC

  NVIDIA GB200 NVL72 connects 36 Grace CPUs and 72 Blackwell GPUs in an NVI=
DIA
  NVLink-connected, liquid-cooled, rack-scale design.

Updated BMC platforms:

- Bletchley (Meta): GPIO hog names, remove ethernet-phy node, USB PD negoti=
ation
- Catalina (Meta): Various sensors added, MCTP support for NIC management
- Harma (Meta): Various sensors added
- System1 (IBM): IPMB and various GPIO-related updates
- Yosemite4 (Meta): GPIO names for UART mux select lines

The System1 series includes a devicetree binding patch for IPMI IPMB device=
s.

 
9 Jul 2025: arm64: defconfig: for v6.17 [+ + +]
Samsung SoC defconfig changes for v6.17

1. Multiple SoCs (including Samsung, Apple): switch sound to module from
   a built-in, because it is not necessary for booting.  Also drop
   redundant sound codec options.

2. Enable PMIC drivers for Google GS101 Pixel 6 phones: MAX77759 and
   Samsung PMIC over ACPM protocol.

9 Jul 2025: clk: samsung: drivers for v6.17 [+ + +]
Hi,

Clock drivers. The bindings were kept on separate branch, just in case, but
eventually they were not shared outside.

Best regards,
Krzysztof


Samsung SoC clock drivers changes for 6.17

1. Fixes for clock topology on Google GS101.
2. Add HSI2 controller on ExynosAutov920.
3. Minor comment fix for Exynos850.

9 Jul 2025: ARM: dts: vt8500: for v6.17 [+ + +]
VT8500 DTS ARM changes for v6.17

1. Several dtbs_check cleanups.
2. Add missing cache topology - L2 cache controller on WM8850/WM895.

 
8 Jul 2025: cpupower update for Linux 6.17-rc1 [+ + +]
Hi Rafael,


Fixes
  - snapshot-order of tsc ,mperf, clock in mperf_stop()
  - printing of CORE, CPU fields in cpupower-monitor

Improves Python binding's Makefile

diff is attached.

thanks,
-- Shuah

linux-cpupower-6.17-rc1-fixed

Fixes
  - snapshot-order of tsc,mperf, clock in mperf_stop()
  - printing of CORE, CPU fields in cpupower-monitor

Improves Python binding's Makefile

8 Jul 2025: Rust pin-init for v6.17 [+ + +]
Hi Miguel,

This time there are a couple of interesting changes, see below. Most
importantly, we can now use `Result` as an initializer. And implement
`Zeroable` via the `MaybeZeroable` derive macro. When the second part of
[1] is merged, this will make all types in bindings that can be zeroed
implement `Zeroable`.

There is one small mistake in the second commit e832374ccadf ("rust:
pin-init: change blanket impls for `[Pin]Init` and add one for
`Result<T, E>`") I forgot to ping Andreas about the changes in Rust
block and thus don't have his Acked-by. We discussed this privately
and he his okay with the changes. I didn't rebase due to the fact that
the commit already is pretty old and that Danilo already merged that
commit into driver-core-next, see below. Sorry about this!

All commits have been in linux-next for over three weeks.

No conflicts expected.

Note that driver-core-next is also merging the tag
`pin-init-v6.17-result-blanket` that includes the first two commits.


[1]: https://lore.kernel.org/all/[email protected]

---
Cheers,
Benno

pin-init changes for v6.17

Added:

- 'impl<T, E> [Pin]Init<T, E> for Result<T, E>', so results are now
  (pin-)initializers.

- 'Zeroable::init_zeroed()' delegating to 'init_zeroed()'.

- New 'zeroed()', a safe version of 'mem::zeroed()' and also provide
  it via 'Zeroable::zeroed()'.

- Implement 'Zeroable' for 'Option<&T>' and 'Option<&mut T>'.

- Implement 'Zeroable' for 'Option<[unsafe] [extern "abi"]
  fn(...args...) -> ret>' for '"Rust"' and '"C"' ABIs and up to 20
  arguments.

Changed:

- Blanket impls of 'Init' and 'PinInit' from 'impl<T, E> [Pin]Init<T, E>
  for T' to 'impl<T> [Pin]Init<T> for T'.

- Renamed 'zeroed()' to 'init_zeroed()'.

Upstream dev news:

- More CI improvements to deny warnings, use '--all-targets'. Also check
  the synchronization status of the two '-next' branches in upstream and
  the kernel.

 
7 Jul 2025: Immutable branch between GPIO, MFD and ARM-SoC for v6.17-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>

Hi!


Thanks,
Bartosz

Immutable branch between GPIO, MFD and ARM-SoC for v6.17-rc1

Remove struct bgpio_pdata after converting its users to generic device
properties.

 
24 Jun 2025: [PATCH v2 0/5] rust: Task & schedule related changes for v6.17 [+ + +]
Hi Ingo & Peter,

This is the updated version from my pull request last cycle:

v1: https://lore.kernel.org/rust-for-linux/[email protected]/

Please take a look, thanks!

Changes since v1:

- `Location::file_with_nul()` is used to avoid the C changes of
  __might_sleep()

Regards,
Boqun


Rust task & schedule changes for v6.17:

- Make Task, CondVar and PollCondVar methods inline to avoid unnecessary
  function calls

- Add might_sleep() support for Rust code: Rust's "#[track_caller]"
  mechanism is used so that Rust's might_sleep() doesn't need to be
  defined as a macro

24 Jun 2025: Immutable tag between the pwrseq, drm and pmdomain trees for v6.17-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>

Here's an immutable tag containing the thead 1520 power sequencing driver
for the drm and pmdomain trees to pull from.

Best Regards,
Bartosz Golaszewski

Immutable tag between the pwrseq, drm and pmdomain trees

Add the T-HEAD TH1520 GPU power sequencer driver