Latest Linux kernel releases

  25.05 6.15 (merge, pull)
  22.05 6.14.8, 6.12.30, 6.6.92, 6.1.140, 5.15.184
  02.05 5.10.237, 5.4.293

Significant pull requests for mainline kernel

 
28 May 2025: Driver core changes for 6.16-rc1 [+ + +]
Driver core changes for 6.16-rc1

Here are the driver core / kernfs changes for 6.16-rc1.

Not a huge number of changes this development cycle, here's the summary
of what is included in here:
  - kernfs locking tweaks, pushing some global locks down into a per-fs
    image lock
  - rust driver core and pci device bindings added for new features.
  - sysfs const work for bin_attributes.  This churn should now be
    completed for those types of attributes
  - auxbus device creation helpers added
  - fauxbus fix for creating sysfs files after the probe completed
    properly
  - other tiny updates for driver core things.

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

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

28 May 2025: Devicetree updates for v6.16 [+ + +]
VT8500 entry with several trees, and a conflict with the tty tree (take 
the tty tree change).

Rob


Devicetree updates for v6.16:

DT Bindings:
- Convert all remaining interrupt-controller bindings to DT schema

- Convert Rockchip CDN-DP and Freescale TCON, M4IF, TigerP, LDB, PPC
  PMC, imx-drm, and ftm-quaddec to DT schema

- Add bindings for fsl,vf610-pit, fsl,ls1021a-wdt, sgx,vz89te,
  maxim,max30208, ti,lp8864, and fairphone,fp5-sndcard

- Add top-level constraints for renesas,vsp1 and renesas,fcp

- Add missing constraint in amlogic,pinctrl-a4 'group' nodes

- Adjust the allowed properties for dwc3-xilinx, sony,imx219,
  pci-iommu, and renesas,dsi

- Add EcoNet vendor prefix

- Fix the reserved-memory.yaml in fsl,qman-fqd

- Drop obsolete numa.txt and cpu-topology.txt which are schemas in
  dtschema now

- Drop Renesas RZ/N1S bindings

- Ensure Arm cpu nodes don't allow undocumented properties. Add all
  the properties which are in use and undocumented. Drop the Mediatek
  cpufreq binding which is not a binding, but just what DT properties
  the driver uses.

- Add compatibles for Renesas RZ/G3E and RZ/V2N Mali Bifrost GPU

- Update documentation on defining child nodes with separate schemas

- Add bindings to PSCI MAINTAINERS entry

DT core:
- Add new functions to simplify driver handling of 'memory-region'
  properties. Users to be added next cycle.

- Simplify of_dma_set_restricted_buffer() to use of_for_each_phandle()

- Add missing unlock on error in unittest_data_add()

28 May 2025: Networking for v6.16 [+ + +]
Beware, there is a semantic conflict with your tree, which will cause
build failure for CONFIG_AMD_NB enabled builds unless you also apply:

https://lore.kernel.org/linux-next/[email protected]/

I'm aware of the following conflicts with your tree:

drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c
  https://lore.kernel.org/linux-next/[email protected]/

net/unix/af_unix.c
  https://lore.kernel.org/linux-next/[email protected]/

With the ftrace tree:

include/trace/events/tcp.h
  https://lore.kernel.org/linux-next/[email protected]/

With the rdma-fixes tree:

drivers/infiniband/hw/irdma/main.c
  https://lore.kernel.org/linux-next/[email protected]/

With the reset tree:

MAINTAINERS
  https://lore.kernel.org/linux-next/[email protected]/

Networking changes for 6.16.

Core
----

 - Implement the Device Memory TCP transmit path, allowing zero-copy
   data transmission on top of TCP from e.g. GPU memory to the wire.

 - Move all the IPv6 routing tables management outside the RTNL scope,
   under its own lock and RCU. The route control path is now 3x times
   faster.

 - Convert queue related netlink ops to instance lock, reducing
   again the scope of the RTNL lock. This improves the control plane
   scalability.

 - Refactor the software crc32c implementation, removing unneeded
   abstraction layers and improving significantly the related
   micro-benchmarks.

 - Optimize the GRO engine for UDP-tunneled traffic, for a 10%
   performance improvement in related stream tests.

 - Cover more per-CPU storage with local nested BH locking; this is a
   prep work to remove the current per-CPU lock in local_bh_disable()
   on PREMPT_RT.

 - Introduce and use nlmsg_payload helper, combining buffer bounds
   verification with accessing payload carried by netlink messages.

Netfilter
---------

 - Rewrite the procfs conntrack table implementation, improving
   considerably the dump performance. A lot of user-space tools
   still use this interface.

 - Implement support for wildcard netdevice in netdev basechain
   and flowtables.

 - Integrate conntrack information into nft trace infrastructure.

 - Export set count and backend name to userspace, for better
   introspection.

BPF
---

 - BPF qdisc support: BPF-qdisc can be implemented with BPF struct_ops
   programs and can be controlled in similar way to traditional qdiscs
   using the "tc qdisc" command.

 - Refactor the UDP socket iterator, addressing long standing issues
   WRT duplicate hits or missed sockets.

Protocols
---------

 - Improve TCP receive buffer auto-tuning and increase the default
   upper bound for the receive buffer; overall this improves the single
   flow maximum thoughput on 200Gbs link by over 60%.

 - Add AFS GSSAPI security class to AF_RXRPC; it provides transport
   security for connections to the AFS fileserver and VL server.

 - Improve TCP multipath routing, so that the sources address always
   matches the nexthop device.

 - Introduce SO_PASSRIGHTS for AF_UNIX, to allow disabling SCM_RIGHTS,
   and thus preventing DoS caused by passing around problematic FDs.

 - Retire DCCP socket. DCCP only receives updates for bugs, and major
   distros disable it by default. Its removal allows for better
   organisation of TCP fields to reduce the number of cache lines hit
   in the fast path.

 - Extend TCP drop-reason support to cover PAWS checks.

Driver API
28 May 2025: arm64 updates for 6.16 [+ + +]
included in the tag, but the headline feature is the re-enablement of
support for Arm's Scalable Matrix Extension (SME) thanks to a bumper
crop of fixes from Mark Rutland. If matrices aren't your thing, then
Ryan's page-table optimisation work is much more interesting.

There are two logistical things to be aware of:

  1. I've merged in for-next/fixes because the work to prevent BSS
     exports being used in the PI code depended on it. The branch
     appears as the base commit since you've pulled it already in 6.15.

  2. There's a trivial conflict in arch/arm64/kernel/image-vars.h with
     your tree due to a fix that landed in 6.15 via the KVM tree. The
     resolution is to take the new hunk, dropping the part guarded by
     CONFIG_CAVIUM_ERRATUM_27456. My resolution is below.

Any problems, please yell.

Cheers,

Will

--->8

arm64 updates for 6.16

ACPI, EFI and PSCI:
 - Decouple Arm's "Software Delegated Exception Interface" (SDEI)
   support from the ACPI GHES code so that it can be used by platforms
   booted with device-tree.

 - Remove unnecessary per-CPU tracking of the FPSIMD state across EFI
   runtime calls.

 - Fix a node refcount imbalance in the PSCI device-tree code.

CPU Features:
 - Ensure register sanitisation is applied to fields in ID_AA64MMFR4.

 - Expose AIDR_EL1 to userspace via sysfs, primarily so that KVM guests
   can reliably query the underlying CPU types from the VMM.

 - Re-enabling of SME support (CONFIG_ARM64_SME) as a result of fixes
   to our context-switching, signal handling and ptrace code.

Entry code:
 - Hook up TIF_NEED_RESCHED_LAZY so that CONFIG_PREEMPT_LAZY can be
   selected.

Memory management:
 - Prevent BSS exports from being used by the early PI code.

 - Propagate level and stride information to the low-level TLB
   invalidation routines when operating on hugetlb entries.

 - Use the page-table contiguous hint for vmap() mappings with
   VM_ALLOW_HUGE_VMAP where possible.

 - Optimise vmalloc()/vmap() page-table updates to use "lazy MMU mode"
   and hook this up on arm64 so that the trailing DSB (used to publish
   the updates to the hardware walker) can be deferred until the end of
   the mapping operation.

 - Extend mmap() randomisation for 52-bit virtual addresses (on par with
   48-bit addressing) and remove limited support for randomisation of
   the linear map.

Perf and PMUs:
 - Add support for probing the CMN-S3 driver using ACPI.

 - Minor driver fixes to the CMN, Arm-NI and amlogic PMU drivers.

Selftests:
 - Fix FPSIMD and SME tests to align with the freshly re-enabled SME
   support.

 - Fix default setting of the OUTPUT variable so that tests are
   installed in the right location.

vDSO:
 - Replace raw counter access from inline assembly code with a call to
   the the __arch_counter_get_cntvct() helper function.

Miscellaneous:
 - Add some missing header inclusions to the CCA headers.

 - Rework rendering of /proc/cpuinfo to follow the x86-approach and
   avoid repeated buffer expansion (the user-visible format remains
   identical).

 - Remove redundant selection of CONFIG_CRC32

 - Extend early error message when failing to map the device-tree blob.

28 May 2025: nios2: updates for v6.16 [+ + +]
28 May 2025: drm for 6.16-rc1 [+ + +]
This is the main drm pull request for 6.16.

There will be conflicts, summary below.

As part of building up nova-core/nova-drm pieces we've brought in some
rust abstractions through this tree, aux bus being the main one, with
devres changes also in the driver-core tree. Along with the drm core
abstractions and enough nova-core/nova-drm to use them. This is still
all stub work under construction, to build the nova driver upstream.

The other big NVIDIA related one is nouveau adds support for
Hopper/Blackwell GPUs, this required a new GSP firmware update to
570.144, and a bunch of rework in order to support multiple fw
interfaces.

There is also the introduction of an asahi uapi header file as a
precursor to getting the real driver in later, but to unblock
userspace mesa packages while the driver is trapped behind rust
enablement.

The disgusting turds removal patchset is also in here.

Otherwise it's the usual mixture of stuff all over, amdgpu, i915/xe,
and msm being the main ones, and some changes to vsprintf.

Conflicts I know about:
rust tree conflict:
https://lore.kernel.org/dri-devel/[email protected]/
configfs tree:
https://lore.kernel.org/dri-devel/[email protected]/
with your tree xe:
https://lore.kernel.org/dri-devel/[email protected]/
https://lore.kernel.org/dri-devel/[email protected]/

I've put a trial merge result at
https://github.com/airlied/linux/tree/drm-next-6.16-rc1-merged

but since you haven't merged a few things, it probably won't show them all.

Let me know if there any issues,

Regards,
Dave.

drm-next-2025-05-28:
drm for 6.16-rc1

new drivers:
- bring in the asahi uapi header standalone
- nova-drm: stub driver

rust dependencies (for nova-core):
- auxiliary
  - bus abstractions
  - driver registration
  - sample driver
- devres changes from driver-core
- revocable changes

core:
- add Apple fourcc modifiers
- add virtio capset definitions
- extend EXPORT_SYNC_FILE for timeline syncobjs
- convert to devm_platform_ioremap_resource
- refactor shmem helper page pinning
- DP powerup/down link helpers
- remove disgusting turds
- extended %p4cc in vsprintf.c to support fourcc prints
- change vsprintf %p4cn to %p4chR, remove %p4cn
- Add drm_file_err function
- IN_FORMATS_ASYNC property
- move sitronix from tiny to their own subdir

rust:
- add drm core infrastructure rust abstractions
  (device/driver, ioctl, file, gem)

dma-buf:
- adjust sg handling to not cache map on attach
- allow setting dma-device for import
- Add a helper to sort and deduplicate dma_fence arrays

docs:
- updated drm scheduler docs
- fbdev todo update
- fb rendering
- actual brightness

ttm:
- fix delayed destroy resv object

bridge:
- add kunit tests
- convert tc358775 to atomic
- convert drivers to devm_drm_bridge_alloc
- convert rk3066_hdmi to bridge driver

scheduler:
- add kunit tests

panel:
- refcount panels to improve lifetime handling
- Powertip PH128800T004-ZZA01
- NLT NL13676BC25-03F, Tianma TM070JDHG34-00
- Himax HX8279/HX8279-D DDIC
- Visionox G2647FB105
- Sitronix ST7571
- ZOTAC rotation quirk

vkms:
- allow attaching more displays

i915:
- xe3lpd display updates
- vrr refactor
- intel_display struct conversions
- xe2hpd memory type identification
- add link rate/count to i915_display_info
- cleanup VGA plane handling
- refactor HDCP GSC
- fix SLPC wait boosting reference counting
- add 20ms delay to engine reset
- fix fence release on early probe errors

xe:
- SRIOV updates
- BMG PCI ID update
- support separate firmware for each GT
- SVM fix, prelim SVM multi-device work
- export fan speed
- temp disable d3cold on BMG
- backup VRAM in PM notifier instead of suspend/freeze
- update xe_ttm_access_memory to use GPU for non-visible access
- fix guc_info debugfs for VFs
- use copy_from_user instead of __copy_from_user
- append PCIe gen5 limitations to xe_firmware document

amdgpu:
- DSC cleanup
- DC Scaling updates
- Fused I2C-over-AUX updates
- DMUB updates
- Use drm_file_err in amdgpu
- Enforce isolation updates
- Use new dma_fence helpers
- USERQ fixes
- Documentation updates
- SR-IOV updates
- RAS updates
- PSP 12 cleanups
- GC 9.5 updates
- SMU 13.x updates
- VCN / JPEG SR-IOV updates

amdkfd:
- Update error messages for SDMA
- Userptr updates
- XNACK fixes

radeon:
- CIK doorbell cleanup

nouveau:
- add support for NVIDIA r570 GSP firmware
- enable Hopper/Blackwell support

nova-core:
- fix task list
- register definition infrastructure
- move firmware into own rust module
- register auxiliary device for nova-drm

nova-drm:
- initial driver skeleton

msm:
- GPU:
  - ACD (adaptive clock distribution) for X1-85
  - drop fictional address_space_size
  - improve GMU HFI response time out robustness
  - fix crash when throttling during boot
- DPU:
  - use single CTL path for flushing on DPU 5.x+
  - improve SSPP allocation code for better sharing
  - Enabled SmartDMA on SM8150, SC8180X, SC8280XP, SM8550
  - Added SAR2130P support
  - Disabled DSC support on MSM8937, MSM8917, MSM8953, SDM660
- DP:
  - switch to new audio helpers
  - better LTTPR handling
- DSI:
  - Added support for SA8775P
  - Added SAR2130P support
- HDMI:
  - Switched to use new helpers for ACR data
  - Fixed old standing issue of HPD not working in some cases

amdxdna:
- add dma-buf support
- allow empty command submits

renesas:
- add dma-buf support
- add zpos, alpha, blend support

panthor:
- fail properly for NO_MMAP bos
- add SET_LABEL ioctl
- debugfs BO dumping support

imagination:
- update DT bindings
- support TI AM68 GPU

hibmc:
- improve interrupt handling and HPD support

virtio:
- add panic handler support

rockchip:
- add RK3588 support
- add DP AUX bus panel support

ivpu:
- add heartbeat based hangcheck

mediatek:
- prepares support for MT8195/99 HDMIv2/DDCv2

anx7625:
- improve HPD

tegra:
- speed up firmware loading
drm for 6.16-rc1

new drivers:
- bring in the asahi uapi header standalone
- nova-drm: stub driver

rust dependencies (for nova-core):
- auxiliary
  - bus abstractions
  - driver registration
  - sample driver
- devres changes from driver-core
- revocable changes

core:
- add Apple fourcc modifiers
- add virtio capset definitions
- extend EXPORT_SYNC_FILE for timeline syncobjs
- convert to devm_platform_ioremap_resource
- refactor shmem helper page pinning
- DP powerup/down link helpers
- remove disgusting turds
- extended %p4cc in vsprintf.c to support fourcc prints
- change vsprintf %p4cn to %p4chR, remove %p4cn
- Add drm_file_err function
- IN_FORMATS_ASYNC property
- move sitronix from tiny to their own subdir

rust:
- add drm core infrastructure rust abstractions
  (device/driver, ioctl, file, gem)

dma-buf:
- adjust sg handling to not cache map on attach
- allow setting dma-device for import
- Add a helper to sort and deduplicate dma_fence arrays

docs:
- updated drm scheduler docs
- fbdev todo update
- fb rendering
- actual brightness

ttm:
- fix delayed destroy resv object

bridge:
- add kunit tests
- convert tc358775 to atomic
- convert drivers to devm_drm_bridge_alloc
- convert rk3066_hdmi to bridge driver

scheduler:
- add kunit tests

panel:
- refcount panels to improve lifetime handling
- Powertip PH128800T004-ZZA01
- NLT NL13676BC25-03F, Tianma TM070JDHG34-00
- Himax HX8279/HX8279-D DDIC
- Visionox G2647FB105
- Sitronix ST7571
- ZOTAC rotation quirk

vkms:
- allow attaching more displays

i915:
- xe3lpd display updates
- vrr refactor
- intel_display struct conversions
- xe2hpd memory type identification
- add link rate/count to i915_display_info
- cleanup VGA plane handling
- refactor HDCP GSC
- fix SLPC wait boosting reference counting
- add 20ms delay to engine reset
- fix fence release on early probe errors

xe:
- SRIOV updates
- BMG PCI ID update
- support separate firmware for each GT
- SVM fix, prelim SVM multi-device work
- export fan speed
- temp disable d3cold on BMG
- backup VRAM in PM notifier instead of suspend/freeze
- update xe_ttm_access_memory to use GPU for non-visible access
- fix guc_info debugfs for VFs
- use copy_from_user instead of __copy_from_user
- append PCIe gen5 limitations to xe_firmware document

amdgpu:
- DSC cleanup
- DC Scaling updates
- Fused I2C-over-AUX updates
- DMUB updates
- Use drm_file_err in amdgpu
- Enforce isolation updates
- Use new dma_fence helpers
- USERQ fixes
- Documentation updates
- SR-IOV updates
- RAS updates
- PSP 12 cleanups
- GC 9.5 updates
- SMU 13.x updates
- VCN / JPEG SR-IOV updates

amdkfd:
- Update error messages for SDMA
- Userptr updates
- XNACK fixes

radeon:
- CIK doorbell cleanup

nouveau:
- add support for NVIDIA r570 GSP firmware
- enable Hopper/Blackwell support

nova-core:
- fix task list
- register definition infrastructure
- move firmware into own rust module
- register auxiliary device for nova-drm

nova-drm:
- initial driver skeleton

msm:
- GPU:
  - ACD (adaptive clock distribution) for X1-85
  - drop fictional address_space_size
  - improve GMU HFI response time out robustness
  - fix crash when throttling during boot
- DPU:
  - use single CTL path for flushing on DPU 5.x+
  - improve SSPP allocation code for better sharing
  - Enabled SmartDMA on SM8150, SC8180X, SC8280XP, SM8550
  - Added SAR2130P support
  - Disabled DSC support on MSM8937, MSM8917, MSM8953, SDM660
- DP:
  - switch to new audio helpers
  - better LTTPR handling
- DSI:
  - Added support for SA8775P
  - Added SAR2130P support
- HDMI:
  - Switched to use new helpers for ACR data
  - Fixed old standing issue of HPD not working in some cases

amdxdna:
- add dma-buf support
- allow empty command submits

renesas:
- add dma-buf support
- add zpos, alpha, blend support

panthor:
- fail properly for NO_MMAP bos
- add SET_LABEL ioctl
- debugfs BO dumping support

imagination:
- update DT bindings
- support TI AM68 GPU

hibmc:
- improve interrupt handling and HPD support

virtio:
- add panic handler support

rockchip:
- add RK3588 support
- add DP AUX bus panel support

ivpu:
- add heartbeat based hangcheck

mediatek:
- prepares support for MT8195/99 HDMIv2/DDCv2

anx7625:
- improve HPD

tegra:
- speed up firmware loading

 
27 May 2025: IPE update for 6.16 [+ + +]
Please merge this PR for the IPE update for 6.16.

This PR contains a single commit from Jasjiv Singh. It adds an errno
field to IPE policy load auditing to log failures with error details,
not just successes. This improves the security audit trail and helps
diagnose policy deployment issues.

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

Thanks,
Fan

--

ipe/stable-6.16 PR 20250527

27 May 2025: Smack patches for 6.16 [+ + +]
Here is the Smack pull request for v6.16.

There is one trivial kernel doc patch.

Kernel doc fix for 6.16

27 May 2025: ext4 changes for v6.16-rc1 [+ + +]
New ext4 features and performance improvements:
   * Fast commit performance improvements
   * Multi-fsblock atomic write support for bigalloc file systems
   * Large folio support for regular files

This last can result in really stupendous performance for the right
workloads.  For example, see [1] where the Kernel Test Robot reported
over 37% improvement on a large sequential I/O workload.

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

There are also the usual bug fixes and cleanups.  Of note are cleanups
of the extent status tree to fix potential races that could result in
the extent status tree getting corrupted under heavy siulatneous
allocation and deallocation to a single file.

27 May 2025: sched_ext: Changes for v6.16 [+ + +]
sched_ext: Changes for v6.16

- More in-kernel idle CPU selection improvements. Expand topology awareness
  coverage add scx_bpf_select_cpu_and() to allow more flexibility. The idle
  CPU selection kfuncs can now be called from unlocked contexts too.

- A bunch of reorganization changes to lay the foundation for multiple
  hierarchical scheduler support. This isn't ready yet and the included
  changes don't make meaningful behavior differences. One notable change is
  replacing some static_key tests with dynamic tests as the test results may
  differ depending on the scheduler instance. This isn't expected to cause
  meaningful performance difference.

- Other minor and doc updates.

- There were multiple patches in for-6.15-fixes which conflicted with
  changes in for-6.16. for-6.15-fixes were pulled three times into for-6.16
  to resolve the conflicts.

27 May 2025: cgroup: Changes for v6.16 [+ + +]
cgroup: Changes for v6.16

- cgroup rstat shared the tracking tree across all controlers with the
  rationale being that a cgroup which is using one resource is likely to be
  using other resources at the same time (ie. if something is allocating
  memory, it's probably consuming CPU cycles). However, this turned out to
  not scale very well especially with memcg using rstat for internal
  operations which made memcg stat read and flush patterns substantially
  different from other controllers. JP Kobryn split the rstat tree per
  controller.

- cgroup BPF support was hooking into cgroup init/exit paths directly.
  Convert them to use a notifier chain instead so that other usages can be
  added easily. The two of the patches which implement this are mislabeled
  as belonging to sched_ext instead of cgroup. Sorry.

- Relatively minor cpuset updates.

- Documentation updates.

27 May 2025: workqueue: Changes for v6.16 [+ + +]
workqueue: Changes for v6.16

Fix statistic update race condition and a couple documentation updates.

27 May 2025: dlm updates for 6.16 [+ + +]


This set fixes delays when shutting down SCTP connections, and updates
dlm Kconfig for SCTP.

Thanks,
Dave

27 May 2025: Documentation for 6.16 [+ + +]
A moderately busy cycle for documentation this time around:

- The most significant change is the replacement of the old kernel-doc
  script (a monstrous collection of Perl regexes that predates the Git era)
  with a Python reimplementation.  That, too, is a horrifying collection of
  regexes, but in a much cleaner and more maintainable structure that
  integrates far better with the Sphinx build system.

  This change has been in linux-next for the full 6.15 cycle; the small
  number of problems that turned up have been addressed, seemingly to
  everybody's satisfaction.  The Perl kernel-doc script remains in tree (as
  scripts/kernel-doc.pl) and can be used with a command-line option if need
  be.  Unless some reason to keep it around materializes, it will probably
  go away in 6.17.

  Credit goes to Mauro Carvalho Chehab for doing all this work.

- Some RTLA documentation updates

- A handful of Chinese translations

- The usual collection of typo fixes, general updates, etc.

27 May 2025: nolibc updates for v6.16-rc1 [+ + +]
nolibc changes for v6.16

Highlights:

* New supported architectures: m68k, SPARC (32 and 64 bit)
* Compatibility with kselftest_harness.h
* A more robust mechanism to include all of nolibc from each header
* Split existing features into new headers to simplify adoption
* Compatibility with UBSAN and it is used in the testsuite
* Many small new features focussing on usage in kselftests

27 May 2025: NFSD changes for v6.16 [+ + +]
NFSD 6.16 Release Notes

The marquee feature for this release is that the limit on the
maximum rsize and wsize has been raised to 4MB. The default remains
at 1MB, but risk-seeking administrators now have the ability to try
larger I/O sizes with NFS clients that support them. Eventually the
default setting will be increased when we have confidence that this
change will not have negative impact.

With v6.16, NFSD now has its own debugfs file system where we can
add experimental features and make them available outside of our
development community without impacting production deployments. The
first experimental setting added is one that makes all NFS READ
operations use vfs_iter_read() instead of the NFSD splice actor. The
plan is to eventually retire the splice actor, as that will enable a
number of new capabilities such as the use of struct bio_vec from the
top to the bottom of the NFSD stack.

Jeff Layton contributed a number of observability improvements. The
use of dprintk() in a number of high-traffic code paths has been
replaced with static trace points.

This release sees the continuation of efforts to harden the NFSv4.2
COPY operation. Soon, the restriction on async COPY operations can
be lifted.

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

27 May 2025: exfat update for 6.16-rc1 [+ + +]
This is exfat update pull request for v6.16-rc1. I add a description of

Thanks!

Description for this pull request:
- Fix xfstests generic/482 test failure.
- Fix double free in delayed_free.

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


Kind regards
Ulf Hansson


MMC core:
 - Scan the eMMC boot areas for partition table
 - Clarify purpose of mmc_can* functions by renaming them to mmc_card_can*
 - Clarify helpers for host capabilities by renaming them to mmc_host_can*
 - Add support for graceful host removal for SD and eMMC
 - Further avoid re-storing power to the eMMC before a shutdown
 - Add quirk to disable DDR50 tuning and use it for some Swissbit SD-cards

MMC host:
 - mtk-sd: Add support for Dimensity 1200 MT6893
 - mtk-sd: Fix condition to enable single burst type
 - mtk-sd: Optimize several code-paths by aggregating register-writes
 - renesas_sdhi: Add support for the Renesas RZ/V2N variant
 - sdhci-msm: Add support for the SM7150 variant
 - sdhci-esdhc-imx: Re-factor the system PM logic
 - sdhci-esdhc-imx: Lots of improvements around the tuning support
 - sdhci-of-arasan: Add support for the Renesas RZ/N1D variant
 - sdhci-of-dwcmhsc: Add Sophgo SG2044 support
 - sdhci-of-esdhc: Add support for the LS1021a variant
 - sdhci-of-k1: Add new driver to support for SpacemiT K1 controller
 - sdhci-pic32: Convert microchip,sdhci-pic32 DT doc to json schema
 - wmt-sdmmc: Convert DT doc to json schema

27 May 2025: pmdomain/cpuidle-psci updates for v6.16 [+ + +]
Here's the pull-request with pmdomain and cpuidle-psci updates for v6.16.
Details about the highlights are as usual found in the signed tag.


Kind regards
Ulf Hansson


pmdomain core:
 - Add residency reflection for domain-idlestates to debugfs
 - Add genpd helper to correct the usage/rejected counters

pmdomain providers:
 - mediatek: Add support for Dimensity 1200 MT6893
 - qcom: Add support for SM4450 power domains
 - rockchip: Add support for RK3562 SoC
 - sunxi: Add support for Allwinner H6/H616 PRCM PPU
 - ti: Fix STANDBY handling of OMAP2+ PER power domain

cpuidle-psci:
 - Correct the domain-idlestate statistics in debugfs

27 May 2025: platform-drivers-x86 for v6.16-1 [+ + +]
Here is the main PDx86 PR for v6.16.

A KNOWN CONFLICT:

x86 tree that seems to be already merged into your tree renamed:
  arch/x86/include/asm/{amd_hsmp.h => amd/hsmp.h}
which has to be adjusted also in drivers/platform/x86/amd/hsmp/hwmon.c
(a newly introduced file in this PR) while merging.

The changes are mostly business as usual. Besides pdx86 changes, there
are a few power supply changes needed for related pdx86 features, move
of oxpec driver from hwmon (oxp-sensors) to pdx86, and one FW version
warning to hid-asus. I'm expecting Pavel might want object the approach
used in the tuxedo driver, I largely relied on my co-maintainer Hans'
opinion on what to do with that change as he was much more familiar with
that discussion, and the pros and cons of each approach.

Highlights:

 - alienware-wmi-wmax:

   - Add HWMON support

   - Add ABI and admin-guide documentation

   - Expose GPIO debug methods through debug FS

   - Support manual fan control and "custom" thermal profile

 - amd/hsmp:

   - Add sysfs files to show HSMP telemetry

   - Report power readings and limits via hwmon

 - amd/isp4: Add AMD ISP platform config for OV05C10

 - asus-wmi:

   - Refactor Ally suspend/resume to work better with older FW

   - hid-asus: check ROG Ally MCU version and warn about old FW versions

 - dasharo-acpi: Add driver for Dasharo devices supporting fans and
                 temperatures monitoring

 - dell-ddv:

   - Expose the battery health and manufacture date to userspace using
     power supply extensions

   - Implement the battery matching algorithm

 - dell-pc:

  - Improve error propagation

  - Use faux device

 - int3472:

   - Add delays to avoid GPIO regulator spikes

   - Add handshake pin support

   - Make regulator supply name configurable and allow registering more
     than 1 GPIO regulator

   - Map mt9m114 powerdown pin to powerenable

 - intel/pmc: Add separate SSRAM Telemetry driver

 - intel-uncore-freq: Add attributes to show agent types and die ID

 - ISST:

   - Support SST-TF revision 2 (allows more cores per bucket)

   - Support SST-PP revision 2 (fabric 1 frequencies)

   - Remove unnecessary SST MSRs restore (the package retains MSRs
     despite CPU offlining)

 - mellanox: Add support for SN2201, SN4280, SN5610, and SN5640

 - mellanox: mlxbf-pmc: Support additional PMC blocks

 - oxpec:

   - Add OneXFly variants

   - Add support for charge limit, charge thresholds, and turbo LED

   - Distinguish current X1 variants to avoid unwanted matching to new
     variants

   - Follow hwmon conventions

   - Move from hwmon/oxp-sensors to platform/x86 to match the enlarged
     scope

 - power: supply: 

   - Add inhibit-charge-awake (needed by oxpec)

   - Add additional battery health status values ("blown fuse" and "cell
     imbalance") (needed by dell-ddv)

 - powerwell-ec: Add driver for Portwell EC supporting GPIO and watchdog

 - thinkpad-acpi: Support camera shutter switch hotkey

 - tuxedo: Add virtual LampArray for TUXEDO NB04 devices

 - tools/power/x86/intel-speed-select:

   - Support displaying SST-PP revision 2 fields

   - Skip uncore frequency update on newer generations of CPUs

 - Miscellaneous cleanups / refactoring / improvements

Regards, i.


platform-drivers-x86 for v6.16-1

Highlights:

 - alienware-wmi-wmax:

   - Add HWMON support

   - Add ABI and admin-guide documentation

   - Expose GPIO debug methods through debug FS

   - Support manual fan control and "custom" thermal profile

 - amd/hsmp:

   - Add sysfs files to show HSMP telemetry

   - Report power readings and limits via hwmon

 - amd/isp4: Add AMD ISP platform config for OV05C10

 - asus-wmi:

   - Refactor Ally suspend/resume to work better with older FW

   - hid-asus: check ROG Ally MCU version and warn about old FW versions

 - dasharo-acpi: Add driver for Dasharo devices supporting fans and
                 temperatures monitoring

 - dell-ddv:

   - Expose the battery health and manufacture date to userspace using
     power supply extensions

   - Implement the battery matching algorithm

 - dell-pc:

  - Improve error propagation

  - Use faux device

 - int3472:

   - Add delays to avoid GPIO regulator spikes

   - Add handshake pin support

   - Make regulator supply name configurable and allow registering more
     than 1 GPIO regulator

   - Map mt9m114 powerdown pin to powerenable

 - intel/pmc: Add separate SSRAM Telemetry driver

 - intel-uncore-freq: Add attributes to show agent types and die ID

 - ISST:

   - Support SST-TF revision 2 (allows more cores per bucket)

   - Support SST-PP revision 2 (fabric 1 frequencies)

   - Remove unnecessary SST MSRs restore (the package retains MSRs
     despite CPU offlining)

 - mellanox: Add support for SN2201, SN4280, SN5610, and SN5640

 - mellanox: mlxbf-pmc: Support additional PMC blocks

 - oxpec:

   - Add OneXFly variants

   - Add support for charge limit, charge thresholds, and turbo LED

   - Distinguish current X1 variants to avoid unwanted matching to new
     variants

   - Follow hwmon conventions

   - Move from hwmon/oxp-sensors to platform/x86 to match the enlarged
     scope

 - power: supply:

   - Add inhibit-charge-awake (needed by oxpec)

   - Add additional battery health status values ("blown fuse" and "cell
     imbalance") (needed by dell-ddv)

 - powerwell-ec: Add driver for Portwell EC supporting GPIO and watchdog

 - thinkpad-acpi: Support camera shutter switch hotkey

 - tuxedo: Add virtual LampArray for TUXEDO NB04 devices

 - tools/power/x86/intel-speed-select:

   - Support displaying SST-PP revision 2 fields

   - Skip uncore frequency update on newer generations of CPUs

 - Miscellaneous cleanups / refactoring / improvements

The following is an automated shortlog grouped by driver:

ABI: testing: sysfs-class-oxp:
 -  add missing documentation
 -  add tt_led attribute documentation

Add AMD ISP platform config for OV05C10:
 - Add AMD ISP platform config for OV05C10

alienware-wmi-wmax:
 -  Add a DebugFS interface
 -  Add HWMON support
 -  Add support for manual fan control
 -  Add support for the "custom" thermal profile
 -  Expose GPIO debug methods
 -  Fix awcc_hwmon_fans_init() label logic
 -  Fix uninitialized bitmap in awcc_hwmon_fans_init()
 -  Improve ID processing
 -  Improve internal AWCC API
 -  Improve platform profile probe
 -  Modify supported_thermal_profiles[]
 -  Rename thermal related symbols

amd/hsmp: acpi:
 -  Add sysfs files to display HSMP telemetry

amd/hsmp:
 -  fix building with CONFIG_HWMON=m
 -  Report power via hwmon sensors
 -  Use a single DRIVER_VERSION for all hsmp modules

arm64: huawei-gaokun-ec:
 -  Remove unneeded semicolon

asus-wmi:
 -  fix build without CONFIG_SUSPEND
 -  Refactor Ally suspend/resume

Avoid -Wflex-array-member-not-at-end warning:
 - Avoid -Wflex-array-member-not-at-end warning

barco-p50:
 -  use new GPIO line value setter callbacks

dell-ddv:
 -  Expose the battery health to userspace
 -  Expose the battery manufacture date to userspace
 -  Implement the battery matching algorithm

dell-pc:
 -  Propagate errors when detecting feature support
 -  Transition to faux device
 -  Use non-atomic bitmap operations

docs: ABI:
 -  Fix "aassociated" to "associated"

Documentation/ABI:
 -  Add new attribute for mlxreg-io sysfs interfaces

Documentation: ABI:
 -  Add sysfs platform and debugfs ABI documentation for alienware-wmi

Documentation: admin-guide: laptops:
 -  Add documentation for alienware-wmi

Documentation: admin-guide: pm:
 -  Add documentation for agent_types
 -  Add documentation for die_id

Documentation: wmi: alienware-wmi:
 -  Add GPIO control documentation

Documentation: wmi:
 -  Improve and update alienware-wmi documentation

Do not enable by default during compile testing:
 - Do not enable by default during compile testing

hid-asus:
 -  check ROG Ally MCU version and warn

hwmon:
 -  (oxp-sensors) Add all OneXFly variants
 -  (oxp-sensors) Distinguish the X1 variants

int0002:
 -  use new GPIO line value setter callbacks

int3472:
 -  Add handshake pin support
 -  Add skl_int3472_register_clock() helper
 -  Avoid GPIO regulator spikes
 -  Debug log when remapping pins
 -  Drop unused gpio field from struct int3472_gpio_regulator
 -  Export int3472_discrete_parse_crs()
 -  For mt9m114 sensors map powerdown to powerenable
 -  Make regulator supply name configurable
 -  Move common.h to public includes, symbols to INTEL_INT3472
 -  Prepare for registering more than 1 GPIO regulator
 -  Remove unused sensor_config struct member
 -  Rework AVDD second sensor quirk handling
 -  Stop setting a supply-name for GPIO regulators
 -  Stop using devm_gpiod_get()

intel/pmc:
 -  Convert index variables to be unsigned
 -  Create Intel PMC SSRAM Telemetry driver
 -  Improve pmc_core_get_lpm_req()
 -  Move error handling to init function
 -  Move PMC Core related functions
 -  Move PMC devid to core.h
 -  Remove unneeded header file inclusion
 -  Remove unneeded io operations
 -  Rename core_ssram to ssram_telemetry
 -  Use devm for mutex_init

intel: power-domains:
 -  Add interface to get Linux die ID

intel-uncore-freq:
 -  Add attributes to show agent types
 -  Add attributes to show die_id

intel/vsec:
 -  Change return type of intel_vsec_register

Introduce dasharo-acpi platform driver:
 - Introduce dasharo-acpi platform driver

ISST:
 -  Do Not Restore SST MSRs on CPU Online Operation
 -  Support SST-PP revision 2
 -  Support SST-TF revision 2
 -  Update minor version

mellanox:
 -  Cosmetic changes to improve code style
 -  Introduce support of Nvidia smart switch
 -  Rename field to improve code readability

mlxbf-pmc:
 -  Support additional PMC blocks

mlx-platform:
 -  Add support for new Nvidia system

mlxreg-dpu:
 -  Add initial support for Nvidia DPU
 -  Fix smatch warnings

nvsw-sn2200:
 -  Add support for new system flavour
 -  Fix .items in nvsw_sn2201_busbar_hotplug

oxpec:
 -  Add a lower bounds check in oxp_psy_ext_set_prop()
 -  Add charge threshold and behaviour to OneXPlayer
 -  Add support for the OneXPlayer G1
 -  Add turbo led support to X1 devices
 -  Adhere to sysfs-class-hwmon and enable pwm on 2
 -  Convert defines to using tabs
 -  Follow reverse xmas convention for tt_toggle
 -  Make turbo val apply a bitmask
 -  Move fan speed read to separate function
 -  Move hwmon/oxp-sensors to platform/x86
 -  Move pwm_enable read to its own function
 -  Move pwm value read/write to separate functions
 -  Rename ec group to tt_toggle
 -  Rename rval to ret in tt_toggle

portwell-ec:
 -  Add GPIO and WDT driver for Portwell EC

power: supply:
 -  add inhibit-charge-awake to charge_behaviour

power: supply: core:
 -  Add additional health status values

silicom:
 -  use new GPIO line value setter callbacks

sony-laptop:
 -  Remove unused sony laptop camera code

thermal/drivers/acerhdf:
 -  Constify struct thermal_zone_device_ops

thinkpad-acpi:
 -  Add support for new hotkey for camera shutter switch

tools/power/x86/intel-speed-select:
 -  Skip uncore frequency update
 -  Support SST PP revision 2 fields
 -  v1.23 release

tuxedo:
 -  Add virtual LampArray for TUXEDO NB04 devices
 -  Prevent invalid Kconfig state

Use strscpy()/scnprintf() with acpi_device_name/class():
 - Use strscpy()/scnprintf() with acpi_device_name/class()

Merges:
 -  Merge branch 'fixes' into for-next
 -  Merge branch 'intel-sst' of https://github.com/spandruvada/linux-kernel into for-next

27 May 2025: media updates [+ + +]

a/v6.16-1

For:

- v4l2-core fix: V4L2_BUF_TYPE_VIDEO_OVERLAY is capture, not output;
- New driver: Amlogic C3 ISP;
- New sensor drivers: ST VD55G1 and VD56G3, OmniVision OV02C10;
- amlogic: c3-mipi-csi2: Handle 64-bits division;
- a fix for 64-bits division at the amlogic c3-mipi-csi2 driver;
- Changes at atomisp to support mainline mt9m114 driver and remove deprecat=
ed
  GPIO APIs;
- various cleanups, fixes and enhancements.
   =20
Regards,
Mauro

---

[GIT PULL for v6.16] media updates

 
26 May 2025: sysctl changes for v6.16-rc1 [+ + +]

Summary

* Move kern_table members out of kernel/sysctl.c

  Moved a subset (tracing, panic, signal, stack_tracer and sparc) out of the
  kern_table array. The goal is for kern_table to only have sysctl elements=
=2E All
  this increases modularity by placing the ctl_tables closer to where they =
are
  used while reducing the chances of merge conflicts in kernel/sysctl.c.

* Fixed sysctl unit test panic by relocating it to selftests

* Testing

  These have been in linux-next from rc2, so they have had more than a month
  worth of testing.

26 May 2025: hardening updates for v6.16-rc1 [+ + +]

The randstruct GCC plugin was fixed but it uncovered a missed
randomization opportunity (that was similarly missed in Clang but has
also now been fixed there too).

There are two patches in this pull that are duplicated in other trees: 1
in netdev and 1 in watchdog. They were needed to build the hardening tree
(due to the randstruct fixes), but they were taken into their respective
trees kind of later in the dev cycle. I debated splitting up this tree
and ripping out the patches, but they're both small, and it seemed like
more trouble for both of us (2 pulls). If you'd rather have it split up,
let me know and I can resend it that way.

Another item of note is the kbuild change that will induce a full kernel
rebuild when other dependencies of the compile change (randstruct seed,
GCC plugins are rebuilt, or the Clang sanitizer .scl file content
changes). Several variations were attempted by myself and kbuild
maintainers was the version ultimately agreed to (and I carried in my
tree since it's all due to hardening features anyway).

Thanks!

-Kees

hardening updates for v6.16-rc1

- Update overflow helpers to ease refactoring of on-stack flex array
  instances (Gustavo A. R. Silva, Kees Cook)

- lkdtm: Use SLAB_NO_MERGE instead of constructors (Harry Yoo)

- Simplify CONFIG_CC_HAS_COUNTED_BY (Jan Hendrik Farr)

- Disable u64 usercopy KUnit test on 32-bit SPARC (Thomas Weißschuh)

- Add missed designated initializers now exposed by fixed randstruct
  (Nathan Chancellor, Kees Cook)

- Document compilers versions for __builtin_dynamic_object_size

- Remove ARM_SSP_PER_TASK GCC plugin

- Fix GCC plugin randstruct, add selftests, and restore COMPILE_TEST
  builds

- Kbuild: induce full rebuilds when dependencies change with GCC plugins,
  the Clang sanitizer .scl file, or the randstruct seed.

- Kbuild: Switch from -Wvla to -Wvla-larger-than=1

- Correct several __nonstring uses for -Wunterminated-string-initialization

26 May 2025: seccomp updates for v6.16-rc1 [+ + +]

Thanks!

-Kees

seccomp updates for v6.16-rc1

- selftest fixes for arm32 (Neill Kapron, Terry Tritton)

- documentation typo fix (Sumanth Gavini)

26 May 2025: Power management updates for v6.16-rc1 [+ + +]

 pm-6.16-rc1


 Merge branch 'pm-tools'


 Linux 6.15-rc7

to receive power management updates for 6.16-rc1.

Once again, the changes are dominated by cpufreq updates, but this time
the majority of them are cpufreq core changes, mostly related to the
introduction of policy locking guards and __free() usage, and fixes
related to boost handling.  Still, there is also a significant update
of the intel_pstate driver making it register an energy model when
running on a hybrid platform which is used for enabling energy-aware
scheduling (EAS) if the driver operates in the passive mode (and
schedutil is used as the cpufreq governor for all CPUs which is the
passive mode default).  There are some amd-pstate driver updates too,
for a good measure, including the "Requested CPU Min frequency" BIOS
option support and new online/offline callbacks.

In the cpuidle space, the most significant change is the addition of
a C1 demotion on/off sysfs knob to intel_idle which should help some
users to configure their systems more precisely.  There is also the
conversion of the PSCI cpuidle driver to a faux device one and there
are two small updates of cpuidle governors.

Device power management is also modified quite a bit, especially the
handling of devices with asynchronous suspend and resume enabled during
system transitions.  They are now going to be handled more asynchronously
during suspend transitions and somewhat less aggressively during resume
transitions.

Apart from the above, the operating performance points (OPP) library
is now going to use mutex locking guards and scope-based cleanup
helpers and there is the usual bunch of assorted fixes and code
cleanups.

Specifics:

 - Fix potential division-by-zero error in em_compute_costs() (Yaxiong
   Tian).

 - Fix typos in energy model documentation and example driver code (Moon
   Hee Lee, Atul Kumar Pant).

 - Rearrange the energy model management code and add a new function for
   adjusting a CPU energy model after adjusting the capacity of the
   given CPU to it (Rafael Wysocki).

 - Refactor cpufreq_online(), add and use cpufreq policy locking guards,
   use __free() in policy reference counting, and clean up core cpufreq
   code on top of that (Rafael Wysocki).

 - Fix boost handling on CPU suspend/resume and sysfs updates (Viresh
   Kumar).

 - Fix des_perf clamping with max_perf in amd_pstate_update() (Dhananjay
   Ugwekar).

 - Add offline, online and suspend callbacks to the amd-pstate driver,
   rename and use the existing amd_pstate_epp callbacks in it (Dhananjay
   Ugwekar).

 - Add support for the "Requested CPU Min frequency" BIOS option to the
   amd-pstate driver (Dhananjay Ugwekar).

 - Reset amd-pstate driver mode after running selftests (Swapnil
   Sapkal).

 - Avoid shadowing ret in amd_pstate_ut_check_driver() (Nathan
   Chancellor).

 - Add helper for governor checks to the schedutil cpufreq governor and
   move cpufreq-specific EAS checks to cpufreq (Rafael Wysocki).

 - Populate the cpu_capacity sysfs entries from the intel_pstate driver
   after registering asym capacity support (Ricardo Neri).

 - Add support for enabling Energy-aware scheduling (EAS) to the
   intel_pstate driver when operating in the passive mode on a hybrid
   platform (Rafael Wysocki).

 - Drop redundant cpus_read_lock() from store_local_boost() in the
   cpufreq core (Seyediman Seyedarab).

 - Replace sscanf() with kstrtouint() in the cpufreq code and use a
   symbol instead of a raw number in it (Bowen Yu).

 - Add support for autonomous CPU performance state selection to the
   CPPC cpufreq driver (Lifeng Zheng).

 - OPP: Add dev_pm_opp_set_level() (Praveen Talari).

 - Introduce scope-based cleanup headers and mutex locking guards in OPP
   core (Viresh Kumar).

 - Switch OPP to use kmemdup_array() (Zhang Enpei).

 - Optimize bucket assignment when next_timer_ns equals KTIME_MAX in the
   menu cpuidle governor (Zhongqiu Han).

 - Convert the cpuidle PSCI driver to a faux device one (Sudeep Holla).

 - Add C1 demotion on/off sysfs knob to the intel_idle driver (Artem
   Bityutskiy).

 - Fix typos in two comments in the teo cpuidle governor (Atul Kumar
   Pant).

 - Fix denying of auto suspend in pm_suspend_timer_fn() (Charan Teja
   Kalla).

 - Move debug runtime PM attributes to runtime_attrs[] (Rafael Wysocki).

 - Add new devm_ functions for enabling runtime PM and runtime PM
   reference counting (Bence Cs=C3=B3k=C3=A1s).

 - Remove size arguments from strscpy() calls in the hibernation core
   code (Thorsten Blum).

 - Adjust the handling of devices with asynchronous suspend enabled
   during system suspend and resume to start resuming them immediately
   after resuming their parents and to start suspending such a device
   immediately after suspending its first child (Rafael Wysocki).

 - Adjust messages printed during tasks freezing to avoid using
   pr_cont() (Andrew Sayers, Paul Menzel).

 - Clean up unnecessary usage of !! in pm_print_times_init() (Zihuan
   Zhang).

 - Add missing wakeup source attribute relax_count to sysfs and
   remove the space character at the end ofi the string produced by
   pm_show_wakelocks() (Zijun Hu).

 - Add configurable pm_test delay for hibernation (Zihuan Zhang).

 - Disable asynchronous suspend in ucsi_ccg_probe() to prevent the
   cypd4226 device on Tegra boards from suspending prematurely (Jon
   Hunter).

 - Unbreak printing PM debug messages during hibernation and clean up
   some related code (Rafael Wysocki).

 - Add a systemd service to run cpupower and change cpupower binding's
   Makefile to use -lcpupower (John B. Wyatt IV, Francesco Poli).

Thanks!



26 May 2025: ACPI updates for v6.16-rc1 [+ + +]

 acpi-6.16-rc1


and 'acpi-docs'


 Linux 6.15-rc7

to receive ACPI updates for 6.16-rc1.

The most significant part of these changes is an ACPICA update covering
two upstream ACPICA releases, 20241212 and 20250404, that have not been
included into the kernel code base yet.  Among other things, it adds
definitions needed to address GCC 15's -Wunterminated-string-initialization
warnings, adds support for three new tables (MRRM, ERDT, RIMT), extends
support for two tables (RAS2, DMAR), and fixes some issues.

On top of the above, there is a new parser for the MRRM table, more
changes related to GCC 15's -Wunterminated-string-initialization
warnings, a CPPC library update including functions related to
autonomous CPU performance state selection, a couple of new quirks,
some assorted fixes and some code cleanups.

Specifics:

 - Fix two ACPICA SLAB cache leaks (Seunghun Han).

 - Add EINJv2 get error type action and define Error Injection Actions
   in hex values to avoid inconsistencies between the specification and
   the code (Zaid Alali).

 - Fix typo in comments for SRAT structures (Adam Lackorzynski).

 - Prevent possible loss of data in ACPICA because of u32 to u8
   conversions (Saket Dumbre).

 - Fix reading FFixedHW operation regions in ACPICA (Daniil Tatianin).

 - Add support for printing AML arguments when the ACPICA debug level is
   ACPI_LV_TRACE_POINT (Mario Limonciello).

 - Drop a stale comment about the file content from actbl2.h (Sudeep
   Holla).

 - Apply pack(1) to union aml_resource (Tamir Duberstein).

 - Fix overflow check in the ACPICA version of vsnprintf() (gldrk).

 - Interpret SIDP structures in DMAR added revision 3.4 of the VT-d
   specification (Alexey Neyman).

 - Add typedef and other definitions related to MRRM to ACPICA (Tony
   Luck).

 - Add definitions for RIMT to ACPICA (Sunil V L).

 - Fix spelling mistake "Incremement" -> "Increment" in the ACPICA
   utilities code (Colin Ian King).

 - Add typedef and other definitions for ERDT to ACPICA (Tony Luck).

 - Introduce ACPI_NONSTRING and use it (Kees Cook, Ahmed Salem).

 - Rename structure and field names of the RAS2 table in actbl2.h (Shiju
   Jose).

 - Fix up whitespace in acpica/utcache.c (Zhe Qiao).

 - Avoid sequence overread in a call to strncmp() in ap_get_table_length()
   and replace strncpy() with memcpy() in ACPICA in some places (Ahmed
   Salem).

 - Update copyright year in all ACPICA files (Saket Dumbre).

 - Add __nonstring annotations for unterminated strings in the static
   ACPI tables parsing code (Kees Cook).

 - Add support for parsing the MRRM ACPI table and sysfs files to
   describe memory regions listed in it (Tony Luck, Anil Keshavamurthy).

 - Remove an (explicitly) unused header file include from the VIOT ACPI
   table parser file (Andy Shevchenko).

 - Improve logging around acpi_initialize_tables() (Bartosz Szczepanek).

 - Clean up the initialization of CPU data structures in the ACPI
   processor driver (Zhang Rui).

 - Remove an obsolete comment regarding the C-states handling in the
   ACPI processor driver (Giovanni Gherdovich).

 - Simplify PCC shared memory region handling (Sudeep Holla).

 - Rework and extend functions for reading CPPC register values and for
   updating CPPC registers (Lifeng Zheng).

 - Add three functions related to autonomous CPU performance state
   selection to the CPPC library (Lifeng Zheng).

 - Turn the acpi_pci_root_remap_iospace() fwnode_handle parameter into a
   const pointer (Pei Xiao).

 - Round battery capacity percengate in the ACPI battery driver to the
   closest integer to avoid user confusion (shitao).

 - Make the ACPI battery driver report the current as a negative number
   to the power supply framework when the battery is discharging as
   documented (Peter Marheine).

 - Add TUXEDO InfinityBook Pro AMD Gen9 to the acpi_ec_no_wakeup[] list
   to prevent spurious wakeups from suspend-to-idle (Werner Sembach).

 - Convert the APEI EINJ driver to a faux device one (Sudeep Holla, Jon
   Hunter).

 - Remove redundant calls to einj_get_available_error_type() from the
   APEI EINJ driver (Zaid Alali).

 - Fix a typo for MECHREVO in irq1_edge_low_force_override[] (Mingcong
   Bai).

 - Add an LPS0 check() callback to the AMD pinctrl driver and fix up
   config symbol dependencies in it (Mario Limonciello, Rafael Wysocki).

 - Avoid initializing the ACPI platform profile driver on non-ACPI
   platforms (Alexandre Ghiti).

 - Document that references to ACPI data (non-device) nodes should use
   string-only references in hierarchical data node packages (Sakari
   Ailus).

 - Fail the ACPI bus registration if acpi_kobj registration fails (Armin
   Wolf).

Thanks!



26 May 2025: Thermal control updates for v6.16-rc1 [+ + +]

 thermal-6.16-rc1


 thermal: qcom: ipq5018: make ops_ipq5018 struct static


 Linux 6.15-rc6

to receive thermal control updates for 6.16-rc1.

These add support for a new feature, Platform Temperature Control (PTC),
to the Intel int340x thermal driver, add support for the Airoha EN7581
thermal sensor and the IPQ5018 platform, fix up the ACPI thermal zones
handling, fix other assorted issues and clean up code.

Specifics:

 - Add Platform Temperature Control (PTC) support to the Intel int340x
   thermal driver (Srinivas Pandruvada).

 - Make the Hisilicon thermal driver compile by default when ARCH_HISI
   is set (Krzysztof Kozlowski).

 - Clean up printk() format by using %pC instead of %pCn in the bcm2835
   thermal driver (Luca Ceresoli).

 - Fix variable name coding style in the AmLogic thermal driver (Enrique
   Isidoro Vazquez Ramos).

 - Fix missing debugfs entry removal on failure by using the devm_
   variant in the LVTS thermal driver (AngeloGioacchino Del Regno).

 - Remove the unused lvts_debugfs_exit() function as the devm_ variant
   introduced before takes care of removing the debugfs entry in the
   LVTS driver (Arnd Bergmann).

 - Add the Airoha EN7581 thermal sensor support along with its DT
   bindings (Christian Marangi).

 - Add ipq5018 compatible string DT binding, cleanup and add its support
   to the QCom Tsens thermal driver (Sricharan Ramabadhran, George
   Moussalem).

 - Fix comments typos in the Airoha driver (Christian Marangi, Colin Ian
   King).

 - Address a sparse warning by making a local variable static in the
   QCom thermal driver (George Moussalem).

 - Fix the usage of the _SCP control method in the driver for ACPI
   thermal zones (Armin Wolf).

Thanks!



26 May 2025: x86/sev for v6.16-rc1 [+ + +]
please pull the x86/sev lineup for v6.16-rc1.

Thx.

---

Add a virtual TPM driver glue which allows a guest kernel to talk to a TPM
device emulated by a Secure VM Service Module (SVSM) - a helper module of sorts
which runs at a different privilege level in the SEV-SNP VM stack.

The intent being that a TPM device is emulated by a trusted entity and not by
the untrusted host which is the default assumption in the confidential
computing scenarios.

26 May 2025: x86/mtrr for v6.16-rc1 [+ + +]
please pull a single x86/mtrr change for v6.16-rc1.

Thx.

---

A single change to verify the presence of fixed MTRR ranges before
accessing the respective MSRs.

26 May 2025: m68k updates for v6.16 [+ + +]
m68k updates for v6.16

  - One more strscpy() conversion,
  - Fix detection of real Mac II,
  - Defconfig updates.

Thanks for pulling!

26 May 2025: x86/cache for v6.16-rc1 [+ + +]
please pull the x86/cache lineup for v6.16-rc1.

I have an example at the end of this mail how I've resolved the merge
conflicts if I merge the tip branches in the order you've received them and
the resolution builds fine but that doesn't mean a whole lot...

Thx.

---

Carve out the resctrl filesystem-related code into fs/resctrl/ so that
multiple architectures can share the fs API for manipulating their
respective hw resource control implementation. This is the second step
in the work towards sharing the resctrl filesystem interface, the next
one being plugging ARM's MPAM into the aforementioned fs API.

26 May 2025: dma-mapping update for Linux 6.16 [+ + +]
dma-mapping updates for Linux 6.16:

- new two step DMA mapping API, which is is a first step to a long path
  to provide alternatives to scatterlist and to remove hacks, abuses and
  design mistakes related to scatterlists; this new approach optimizes
  some calls to DMA-IOMMU layer and cache maintenance by batching them,
  reduces memory usage as it is no need to store mapped DMA addresses to
  unmap them, and reduces some function call overhead; it is a combination
  effort of many people, lead and developed by Christoph Hellwig and Leon
  Romanovsky

26 May 2025: power-supply changes for 6.16 [+ + +]
Subject: [GIT PULL] power-supply changes for 6.16
MIME-Version: 1.0

Hi Linus,

Everything has been in linux-next for 3 weeks, so I don't expect
any issues. Some additional power-supply patches are flowing through
the platform tree this time as they are used by x86 laptops. Stephen
Rothwell reported a trivial merge conflict in the MAINTAINERS file
between the USB and my tree:                                               =
       =20
                                                                           =
 =20
https://lore.kernel.org/linux-next/[email protected]=
/   =20
=20
Last but not least: I will be on a 3 week trekking trip without my         =
  =20
laptop starting today, so if (unexpectedly) something urgent pops          =
            =20
up don't expect any response from me.
                                                                          =
=20
Greetings,

-- Sebastian

power supply and reset changes for the 6.16 series

 * power-supply core
  - power: supply: support charge_types in extensions
 * power-supply drivers
  - new driver for Pegatron Chagall battery
  - new driver for Maxim MAX8971 charger
  - new driver for Huawei Matebook E Go
  - bq27xxx: retry failed I2C transmissions
  - bq24190: add BQ24193 support
  - misc. small cleanups and fixes
 * reset drivers
  - new driver for Toradex SMARC Embedded Controller
  - reboot-mode: add support for modes containing / in DT
  - atmel,at91sam9260-reset: support sama7d65
  - syscon-reboot: add Google GS101 support
  - misc. small cleanups and fixes

26 May 2025: SPI updates for v6.16 [+ + +]
spi: Updates for v6.16

This bulk of the changes in this release are driver work, as well as
new device support we have some important work on performance over
several drivers, and big overhauls for maintainability on a couple too.
Highlights include:

 - Big cleanups of the sh-msiof driver from Geert Uytterhoeven, and of
   the NXP FSPI driver from Haibo Chen.
 - Performance improvements for the AXI SPI engine.
 - Support for writes to memory mapped flashes on Renesas devices.
 - Integrated DMA support for Tegra210 QSPI, used by the Tegra234.
 - DMA support for Amlogic SPI controllers.
 - Support for AMD HID2, Qualcomm IPQ5018, Renesas RZ/G3E, Rockchip
   RK3528 and Samsung Exynos Autov920.

An update to fix some issues with the Atmel QSPI driver runtime PM
pulled in a new API from the PM core, and the Renesas memory mapped
write changes pull in some code that's shared in drivers/memory.

26 May 2025: regmap updates for v6.16 [+ + +]
regmap: Updates for v6.16

This release we have one new feature, support for chips that report edge
interrupts but don't provide distinct readback of that status per line,
plus a few cleanups.

26 May 2025: regulator updates for v6.16 [+ + +]
regulator: Updates for v6.16

This is a very quiet release, there was no work on the core and a good
chunk of the updates were the result of conversions to use newer GPIO
APIs.  We did gain support for Analog ADP5055 and TI TPS65214 devices,
and there's a new restart handler for the PCA9450 which allows devices
using it to be properly power cycled on reboot, but otherwise it's minor
fixes and API updates.

26 May 2025: gpio updates for v6.16-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>


Here's the PR containing updates for the GPIO subsystem for this cycle.
We have three new drivers, some refactoring in the GPIO core, lots of
various changes across many drivers, new configfs interface for the
virtual gpio-aggregator module and DT-bindings updates.

The treewide conversion of GPIO drivers to using the new value setter
callbacks is ongoing with another round of GPIO drivers updated. You will
also see these commits coming in from other subsystems as with the
relevant changes merged into mainline last cycle, I've started converting
GPIO providers located elsewhere than drivers/gpio/.

Details are in the signed tag. Please consider pulling

Thanks,
Bartosz Golaszewski

gpio updates for v6.16-rc1

GPIO core:
- use more lock guards where applicable
- refactor GPIO ACPI code and shrink it in the process by 8%
- move GPIO ACPI quirks into a separate file
- remove unneeded #ifdef
- convert GPIO devres helpers to using devm_add_action() where applicable
  which shrinks and simplifies the code
- refactor GPIO descriptor validation in GPIO consumer interfaces
- don't allow setting values on input lines in the GPIO core which will
  take off the burden from GPIO drivers of checking this down the line
- provide gpiod_is_equal() as a way of safely comparing two GPIO
  descriptors (the only current user is in regulator core)

New drivers:
- add the GPIO module for the max77759 multifunction device
- add the GPIO driver for the VeriSilicon BLZP1600 GPIO controller
- add the GPIO driver for the Spacemit K1 SoC

Driver improvements:
- convert more drivers to using the new GPIO line value setter callbacks
- convert more drivers to making the irq_chip immutable as is recommended
  by the interrupt subsystem
- extend build testing coverage by enabling more modules to be built with
  COMPILE_TEST=y
- extend the gpio-aggregator module with a configfs interface that makes
  the setup easier for user-space than the existing driver-level sysfs
  attributes and also adds more advanced configuration features (such as
  referring to aggregated lines by their original names or modifying
  their names as exposed by the aggregated chip)
- add a missing mutex_destroy() in gpio-imx-scu
- add an OF polarity quirk for s5m8767
- allow building gpio-vf610 as a loadable module
- make gpio-mxc not hardcode its GPIO base number with GPIO SYSFS
  interface disabled (another small step towards getting rid of the global
  GPIO numberspace)
- add support for level-triggered interrupts to gpio-pca953x
- don't double-check the ngpios property in gpio-ds4520 as GPIO core
  already does it
- don't double-check the number of GPIOs in gpio-imx-scu as GPIO core
  already does it
- remove unused callbacks from gpio-max3191x

DT bindings:
- add device-tree bindings for max77759, spacemit,k1 and blzp1600 (new
  drivers added this cycle)
- document more properties for gpio-vf610 and gpio-tegra186
- document a new pca95xx variant
- fix style of examples in several GPIO DT-binding documents

Misc:
- TODO list updates

26 May 2025: sound updates for 6.16-rc1 [+ + +]
please pull sound updates for v6.16-rc1 from:


The topmost commit is 534e9cf3782f1bd6adf0bd7d17ff414ea12a6bf2


sound updates for 6.16-rc1

We've received a lot of activities in this cycle, mostly about leaf
driver codes rather than the core part, but with a good mixture of
code cleanups and new driver additions.  Below are some highlights:

* ASoC:
- Support for automatically enumerating DAIs from standards conforming
  SoundWire SDCA devices; not much used as of this writing, rather for
  future implementations
- Conversion of quite a few drivers to newer GPIO APIs
- Continued cleanups and helper usages in allover places
- Support for a wider range of Intel AVS platforms
- Support for AMD ACP 7.x platforms, Cirrus Logic CS35L63 and CS48L32
  Everest Semiconductor ES8375 and ES8389, Longsoon-1 AC'97
  controllers, nVidia Tegra264, Richtek ALC203 and RT9123 and Rockchip
  SAI controllers

* HD-audio:
- Lots of cleanups of TAS2781 codec drivers
- A new HD-audio control bound via ACPI for Nvidia
- Support for Tegra264, Intel WCL, usual new codec quirks

* USB-audio:
- Fix a race at removal of MIDI device
- Pioneer DJM-V10 support, Scarlett2 driver cleanups

* Misc:
- Cleanups of deprecated PCI functions
- Removal of unused / dead function codes


26 May 2025: xen: branch for v6.16-rc1 [+ + +]
Please git pull the following tag:


xen: branch for v6.16-rc1

It contains the following patches:

- A fix for running as a Xen dom0 on the iMX8QXP Arm platform.

- An update of the xen.config adding XEN_UNPOPULATED_ALLOC for better
  support of PVH dom0.

- A fix of the Xen balloon driver when running without
  CONFIG_XEN_UNPOPULATED_ALLOC.

- A fix of the dm_op Xen hypercall on Arm needed to pass user space
  buffers to the hypervisor in certain configurations.


Thanks.

Juergen

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


These have been subject to -next testing for more than a month, have had
five LKML postings, have been featured on LWN, and with one exception
have a full set of acks.  That exception is this:

48e864ae8657 ("random: Avoid open-coded use of ratelimit_state structure's ->missed field")

The change from this series is function-preserving and is incidental to
the random subsystem, but is necessary to the series, which is in turn
needed to avoid silent and false-positive drops of rate-limited printk()s.

lib/ratelimit: Reduce false-positive and silent misses

Changes
-------

* Reduce open-coded use of ratelimit_state structure fields.
* Convert the ->missed field to atomic_t.
* Count misses that are due to lock contention.
* Eliminate jiffies=0 special case.
* Reduce ___ratelimit() false-positive rate limiting (Petr Mladek).
* Allow zero ->burst to hard-disable rate limiting.
* Optimize away atomic operations when a miss is guaranteed.
* Warn if ->interval or ->burst are negative (Petr Mladek).
* Simplify the resulting code.

A smoke test and stress test have been created, but they are not yet ready
for mainline.  With luck, we will offer them for the v6.17 merge window.

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


lkmm: Update documentation

Changes
-------

* Cross-references, typos, broken URLs (Akira Yokosawa)
* Clarify SRCU explanation (Uladzislau Rezki)

 
26 May 2025: erofs updates for 6.16-rc1 [+ + +]
Could you consider this pull request for 6.16-rc1?

In this cycle, Intel QAT hardware accelerators are supported to improve
DEFLATE decompression performance.  I've also tested it with the enwik9
dataset of 1 MiB pclusters on our Intel Sapphire Rapids bare-metal
server and a PL0 ESSD, and the sequential read performance even
surpasses LZ4 software decompression on this setup.

In addition, a `fsoffset` mount option is introduced for file-backed
mounts to specify the filesystem offset in order to adapt customized
container formats.

There are other improvements and minor cleanups shown as below.  All
commits have been in -next, and no potential merge conflicts are
observed.

Thanks,
Gao Xiang


Changes since last update:

 - Add a `fsoffset` mount option to specify the filesystem offset;

 - Support Intel QAT accelerators to boost up the DEFLATE algorithm;

 - Initialize per-CPU workers and CPU hotplug hooks lazily to avoid
   unnecessary overhead when EROFS is not mounted;

 - Fix file handle encoding for 64-bit NIDs;

 - Minor cleanups.

26 May 2025: Crypto Update for 6.16 [+ + +]
Conflicts detected in linux-next:

https://patchwork.kernel.org/project/linux-crypto/patch/[email protected]/

tip tree:

  a72d55dc3bd6 ("x86/idle: Remove CONFIG_AS_TPAUSE")

crypto tree:

  984f835009d6 ("crypto: x86 - Remove CONFIG_AS_SHA1_NI")
  d032a27e8fe9 ("crypto: x86 - Remove CONFIG_AS_SHA256_NI")

https://patchwork.kernel.org/project/linux-crypto/patch/[email protected]/

arm-soc-fixes tree:

  6c9ab811871b ("arm64: defconfig: Ensure CRYPTO_CHACHA20_NEON is selected")

crypto tree:

  3357b6c94569 ("crypto: tcrypt - rename CRYPTO_TEST to CRYPTO_BENCHMARK")

The resolutions should be trivial in both cases.

The last commit 2297554f01df in the pull request fixes a regression
caused by the addition of arch optimisations to lib/sha256.  The
lib/crypto version of sha256 was used by CPU bring-up on AMD where
the FPU was not yet ready to handle the SIMD instructions.

https://lore.kernel.org/linux-crypto/[email protected]/

The patch was been around for a week and there didn't seem to be any
major concerns with it.  However, it didn't make it into the x86 pull
request for 6.16.  In order to prevent an AMD regression, I'm including
it here.

If there are objections, we could instead disable lib/sha256 x86
optimisations.

This update includes the following changes:

API:

- Fix memcpy_sglist to handle partially overlapping SG lists.
- Use memcpy_sglist to replace null skcipher.
- Rename CRYPTO_TESTS to CRYPTO_BENCHMARK.
- Flip CRYPTO_MANAGER_DISABLE_TEST into CRYPTO_SELFTESTS.
- Hide CRYPTO_MANAGER.
- Add delayed freeing of driver crypto_alg structures.

Compression:

- Allocate large buffers on first use instead of initialisation in scomp.
- Drop destination linearisation buffer in scomp.
- Move scomp stream allocation into acomp.
- Add acomp scatter-gather walker.
- Remove request chaining.
- Add optional async request allocation.

Hashing:

- Remove request chaining.
- Add optional async request allocation.
- Move partial block handling into API.
- Add ahash support to hmac.
- Fix shash documentation to disallow usage in hard IRQs.

Algorithms:

- Remove unnecessary SIMD fallback code on x86 and arm/arm64.
- Drop avx10_256 xts(aes)/ctr(aes) on x86.
- Improve avx-512 optimisations for xts(aes).
- Move chacha arch implementations into lib/crypto.
- Move poly1305 into lib/crypto and drop unused Crypto API algorithm.
- Disable powerpc/poly1305 as it has no SIMD fallback.
- Move sha256 arch implementations into lib/crypto.
- Convert deflate to acomp.
- Set block size correctly in cbcmac.

Drivers:

- Do not use sg_dma_len before mapping in sun8i-ss.
- Fix warm-reboot failure by making shutdown do more work in qat.
- Add locking in zynqmp-sha.
- Remove cavium/zip.
- Add support for PCI device 0x17D8 to ccp.
- Add qat_6xxx support in qat.
- Add support for RK3576 in rockchip-rng.
- Add support for i.MX8QM in caam.

Others:

- Fix irq_fpu_usable/kernel_fpu_begin inconsistency during CPU bring-up.
- Add new SEV/SNP platform shutdown API in ccp.
26 May 2025: chrome-platform updates for v6.16 [+ + +]

Hi Linus,


Thanks,
Tzung-Bi
------

chrome-platform: Updates for v6.16

* New

  - Support MT8192 Spherion and MT8186 Corsola devices in of_hw_prober.
  - Turn cros_ec_proto from bool into tristate.
  - Support Pin Assignment E in cros_ec_typec for USB-C to DP cables.

* Improvements

  - Avoid -Wflex-array-member-not-at-end warnings.

* Cleanups

  - Remove a redundant dependency in Kconfig for cros_kbd_led_backlight.

 
25 May 2025: CRC updates for 6.16 [+ + +]
Cleanups for the kernel's CRC (cyclic redundancy check) code:

- Use __ro_after_init where appropriate
- Remove unnecessary static_key on s390
- Rename some source code files
- Rename the crc32 and crc32c crypto API modules
- Use subsys_initcall instead of arch_initcall
- Restore maintainers for crc_kunit.c
- Fold crc16_byte() into crc16.c
- Add some SPDX license identifiers

25 May 2025: fscrypt update for 6.16 [+ + +]
Add support for "hardware-wrapped inline encryption keys" to fscrypt.
When enabled on supported platforms, this feature protects file contents
keys from certain attacks, such as cold boot attacks.

This feature uses the block layer support for wrapped keys which was
merged in 6.15.  Wrapped key support has existed out-of-tree in Android
for a long time, and it's finally ready for upstream now that there is a
platform on which it works end-to-end with upstream.  Specifically,
it works on the Qualcomm SM8650 HDK, using the Qualcomm ICE (Inline
Crypto Engine) and HWKM (Hardware Key Manager).  The corresponding
driver support is included in the SCSI tree for 6.16.  Validation for
this feature includes two new tests that were already merged into
xfstests (generic/368 and generic/369).

25 May 2025: pwm: Changes for 6.16-rc1 [+ + +]
Subject: [GIT PULL] pwm: Changes for 6.16-rc1
MIME-Version: 1.0

Hello Linus,

the following changes since commit 8ffd015db85fea3e15a77027fda6c02ced4d2444:

  Linux 6.15-rc2 (2025-04-13 11:54:49 -0700)

are available in the Git repository at:

wm/for-6.16-rc1

for you to fetch changes up to c0c980f237e822fd9cc6c0ab5b60ce8efe76464e:

  dt-bindings: timer: renesas,tpu: remove binding documentation (2025-05-19=
 18:46:45 +0200)

It contains a merge of the Renesas tree by Geert Uytterhoeven that you
will also get a pull request for via the arm-soc tree. This was merged to
allow to rename a few PWM Kconfig symbols where the old name was added
to a defconfig file (commit 5ad7de623853 ("arm64: defconfig: Enable
Renesas RZ/G2L GPT config")).

You will get another pull request including a change to
drivers/pwm/pwm-stm32-lp.c by Lee Jones. Lee provided an immutable
branch for that, I didn't merge it however as there are no conflicting
changes in my tree, so you will only notice that if you look carefully
at the diffstat.

There is a merge conflict in MAINTAINERS with commit 3887d3f64260
("dt-bindings: i2c: i2c-wmt: Convert to YAML") from Andi Shyti's
i2c-tree. The trivial resolution that is also in next looks as follows:

25 May 2025: EDAC updates for v6.16 [+ + +]
please pull the EDAC updates for v6.16.

Thx.

---

- ie31200: Add support for Raptor Lake-S and Alder Lake-S compute dies

- Rework how RRL registers per channel tracking is done in order to
  support newer hardware with different RRL configurations and refactor
  that code. Add support for Granite Rapids server

- i10nm: explicitly set RRL modes to fix any wrong BIOS programming

- Properly save and restore Retry Read error Log channel configuration
  info on Intel drivers

- igen6: Handle correctly the case of fused off memory controllers on
  Arizona Beach and Amston Lake SoCs before adding support for them

- the usual set of fixes and cleanups

25 May 2025: irq/core for v6.16-rc1 [+ + +]
please pull the latest irq/core branch from:

-25



Updates for the generic interrupt subsystem core code:

  - Address a long standing subtle problem in the CPU hotplug code for
    affinity-managed interrupts.

    Affinity-managed interrupts are shut down by the core code when the
    last CPU in the affinity set goes offline and started up again when the
    first CPU in the affinity set becomes online again. This unfortunately
    does not take into account whether an interrupt has been disabled
    before the last CPU goes offline and starts up the interrupt
    unconditionally when the first CPU becomes online again. That's
    obviously not what drivers expect.

    Address this by preserving the disabled state for affinity-managed
    interrupts accross these CPU hotplug operations. All non-managed
    interrupts are not affected by this because startup/shutdown is coupled
    to request/free_irq() which obviously has to reset state.

  - Support three-cell scheme interrupts to allow GPIO drivers to specify
    interrupts from an already existing scheme

  - Switch the interrupt subsystem core to lock guards. This gets rid of
    quite some copy & pasta boilerplate code all over the place.

  - The usual small cleanups and improvements all over the place

Thanks,

tglx

25 May 2025: irq/msi for v6.16-rc1 [+ + +]
please pull the latest irq/msi branch from:

25



Updates for the MSI subsystem (core code and PCI):

  - Switch the MSI decriptor locking to lock guards

  - Replace a broken and naive implementation of PCI/MSI-X control word
    updates in the PCI/TPH driver with a properly serialized variant in the
    PCI/MSI core code.

  - Remove the MSI descriptor abuse in the SCCI/UFS/QCOM driver by
    replacing the direct access to the MSI descriptors with the proper API
    function calls. People will never understand that APIs exist for a
    reason...

  - Provide core infrastructre for the upcoming PCI endpoint library
    extensions. Currently limited to ARM GICv3+, but in theory extensible
    to other architectures.

  - Provide a MSI domain::teardown() callback, which allows drivers to undo
    the effects of the prepare() callback.

  - Move the MSI domain::prepare() callback invocation to domain creation
    time to avoid redundant (and in case of ARM/GIC-V3-ITS confusing)
    invocations on every allocation.

    In combination with the new teardown callback this removes some ugly
    hacks in the GIC-V3-ITS driver, which pretended to work around the
    short comings of the core code so far. With this update the code is
    correct by design and implementation.

  - Make the irqchip MSI library globally available, provide a MSI parent
    domain creation helper and convert a bunch of (PCI/)MSI drivers over to
    the modern MSI parent mechanism. This is the first step to get rid of
    at least one incarnation of the three PCI/MSI management schemes.

  - The usual small cleanups and improvements

Thanks,

tglx

25 May 2025: timers/clocksource for v6.16-rc1 [+ + +]
please pull the latest timers/clocksource branch from:

ce-2025-05-25

b/scm/linux/kernel/git/daniel.lezcano/linux into timers/drivers


Updates for clocksource/clockevent drivers:

 - The final conversion of text formatted device tree binding to schemas.

 - A new driver fot the System Timer Module on S32G NXP SoCs.

 - A new driver fot the Econet HPT timer

 - The usual improvements and device tree binding updates


Thanks,

tglx

25 May 2025: timers/core for v6.16-rc1 [+ + +]
please pull the latest timers/core branch from:

-05-25



Updates for the time/timer core code:

  - Rework the initialization of the posix-timer kmem_cache and move the
    cache pointer into the timer_data structure to prevent false sharing.

  - Switch the alarmtimer code to lock guards.

  - Improve the CPU selection criteria in the per CPU validation of the
    clocksource watchdog to avoid arbitrary selections (or omissions) on
    systems with a small number of CPUs.

  - The usual cleanups and improvements

Thanks,

tglx

25 May 2025: irq/drivers for v6.16-rc1 [+ + +]
please pull the latest irq/drivers branch from:

-05-25

ler setup


Update for interrupt chip drivers:

  - Convert the generic interrupt chip to lock guards to remove copy &
    pasta boilerplate code and gotos.

  - A new driver fot the interrupt controller in the EcoNet EN751221 MIPS SoC.

  - Extend the SG2042-MSI driver to support the new SG2044 SoC

  - Updates and cleanups for the (ancient) VT8500 driver

  - Improve the scalability of the ARM GICV4.1 ITS driver by utilizing node
    local copies a VM's interrupt translation table when possible. This
    results in a 12% reduction of VM IPI latency in certain workloads.

  - The usual cleanups and improvements all over the place

Thanks,

tglx

25 May 2025: core/entry for v6.16-rc1 [+ + +]
please pull the latest core/entry branch from:

05-25



Updates for the generic and architecture entry code:

  - Move LoongArch and RISC-V ret_from_fork() implementations to C code so
    that syscall_exit_user_mode() can be inlined.

  - Split the RISC-V ret_from_fork() implementation into return to user and
    return to kernel, which gives a measurable performance improvement.

  - Inline syscall_exit_user_mode() which benefits all architectures by
    avoiding a function call and letting the compiler do better
    optimizations.

Thanks,

tglx

25 May 2025: x86/build changes for v6.16 [+ + +]



Add the CONFIG_X86_NATIVE_CPU=y build option to locally optimize the kernel
build with '-march=native'.

 Thanks,

Ingo

25 May 2025: x86/debug changes for v6.16 [+ + +]



Move the x86 page fault tracepoints to generic code, because
other architectures would like to make use of them as well.

 Thanks,

Ingo

25 May 2025: x86/entry changes for v6.16 [+ + +]



Two changes to simplify the x86 vDSO code a bit.

 Thanks,

Ingo

25 May 2025: x86 core updates for v6.16 [+ + +]



Merge note: There's a large number of changes outside of arch/x86/, 
            most of which relate to mechanic changes to the x86 MSR 
            APIs that do not change semantics. Compatibility wrappers 
            were added for the most commonly used APIs to reduce/avoid 
            the pain of merge conflicts & build failures with in-flight 
            changes in this merge window. In a later stage we'll send 
            changes to remove the compatibility wrappers and any 
            leftover uses of the old API names.

Core x86 updates for v6.16:

Boot code changes:

 - A large series of changes to reorganize the x86 boot code into a better isolated
   and easier to maintain base of PIC early startup code in arch/x86/boot/startup/,
   by Ard Biesheuvel.

   Motivation & background:

| Since commit
|
|    c88d71508e36 ("x86/boot/64: Rewrite startup_64() in C")
|
| dated Jun 6 2017, we have been using C code on the boot path in a way
| that is not supported by the toolchain, i.e., to execute non-PIC C
| code from a mapping of memory that is different from the one provided
| to the linker. It should have been obvious at the time that this was a
| bad idea, given the need to sprinkle fixup_pointer() calls left and
| right to manipulate global variables (including non-pointer variables)
| without crashing.
|
| This C startup code has been expanding, and in particular, the SEV-SNP
| startup code has been expanding over the past couple of years, and
| grown many of these warts, where the C code needs to use special
| annotations or helpers to access global objects.

   This tree includes the first phase of this work-in-progress x86 boot code
   reorganization.

Scalability enhancements and micro-optimizations:

 - Improve code-patching scalability (Eric Dumazet)
 - Remove MFENCEs for X86_BUG_CLFLUSH_MONITOR (Andrew Cooper)

CPU features enumeration updates:

 - Thorough reorganization and cleanup of CPUID parsing APIs (Ahmed S. Darwish)
 - Fix, refactor and clean up the cacheinfo code (Ahmed S. Darwish, Thomas Gleixner)
 - Update CPUID bitfields to x86-cpuid-db v2.3 (Ahmed S. Darwish)

Memory management changes:

 - Allow temporary MMs when IRQs are on (Andy Lutomirski)
 - Opt-in to IRQs-off activate_mm() (Andy Lutomirski)
 - Simplify choose_new_asid() and generate better code (Borislav Petkov)
 - Simplify 32-bit PAE page table handling (Dave Hansen)
 - Always use dynamic memory layout (Kirill A. Shutemov)
 - Make SPARSEMEM_VMEMMAP the only memory model (Kirill A. Shutemov)
 - Make 5-level paging support unconditional (Kirill A. Shutemov)
 - Stop prefetching current->mm->mmap_lock on page faults (Mateusz Guzik)
 - Predict valid_user_address() returning true (Mateusz Guzik)
 - Consolidate initmem_init() (Mike Rapoport)

FPU support and vector computing:

 - Enable Intel APX support (Chang S. Bae)
 - Reorgnize and clean up the xstate code (Chang S. Bae)
 - Make task_struct::thread constant size (Ingo Molnar)
 - Restore fpu_thread_struct_whitelist() to fix CONFIG_HARDENED_USERCOPY=y
   (Kees Cook)
 - Simplify the switch_fpu_prepare() + switch_fpu_finish() logic (Oleg Nesterov)
 - Always preserve non-user xfeatures/flags in __state_perm (Sean Christopherson)

Microcode loader changes:

 - Help users notice when running old Intel microcode (Dave Hansen)
 - AMD: Do not return error when microcode update is not necessary (Annie Li)
 - AMD: Clean the cache if update did not load microcode (Boris Ostrovsky)

Code patching (alternatives) changes:

 - Simplify, reorganize and clean up the x86 text-patching code (Ingo Molnar)
 - Make smp_text_poke_batch_process() subsume smp_text_poke_batch_finish()
   (Nikolay Borisov)
 - Refactor the {,un}use_temporary_mm() code (Peter Zijlstra)

Debugging support:

 - Add early IDT and GDT loading to debug relocate_kernel() bugs (David Woodhouse)
 - Print the reason for the last reset on modern AMD CPUs (Yazen Ghannam)
 - Add AMD Zen debugging document (Mario Limonciello)
 - Fix opcode map (!REX2) superscript tags (Masami Hiramatsu)
 - Stop decoding i64 instructions in x86-64 mode at opcode (Masami Hiramatsu)

CPU bugs and bug mitigations:

 - Remove X86_BUG_MMIO_UNKNOWN (Borislav Petkov)
 - Fix SRSO reporting on Zen1/2 with SMT disabled (Borislav Petkov)
 - Restructure and harmonize the various CPU bug mitigation methods
   (David Kaplan)
 - Fix spectre_v2 mitigation default on Intel (Pawan Gupta)

MSR API:

 - Large MSR code and API cleanup (Xin Li)
 - In-kernel MSR API type cleanups and renames (Ingo Molnar)

PKEYS:

 - Simplify PKRU update in signal frame (Chang S. Bae)

NMI handling code:

 - Clean up, refactor and simplify the NMI handling code (Sohil Mehta)
 - Improve NMI duration console printouts (Sohil Mehta)

Paravirt guests interface:

 - Restrict PARAVIRT_XXL to 64-bit only (Kirill A. Shutemov)

SEV support:

 - Share the sev_secrets_pa value again (Tom Lendacky)

x86 platform changes:

 - Introduce the <asm/amd/> header namespace (Ingo Molnar)
 - i2c: piix4, x86/platform: Move the SB800 PIIX4 FCH definitions to <asm/amd/fch.h>
   (Mario Limonciello)

Fixes and cleanups:

 - x86 assembly code cleanups and fixes (Uros Bizjak)

 - Misc fixes and cleanups (Andi Kleen, Andy Lutomirski, Andy Shevchenko,
   Ard Biesheuvel, Bagas Sanjaya, Baoquan He, Borislav Petkov, Chang S. Bae,
   Chao Gao, Dan Williams, Dave Hansen, David Kaplan, David Woodhouse,
   Eric Biggers, Ingo Molnar, Josh Poimboeuf, Juergen Gross, Malaya Kumar Rout,
   Mario Limonciello, Nathan Chancellor, Oleg Nesterov, Pawan Gupta,
   Peter Zijlstra, Shivank Garg, Sohil Mehta, Thomas Gleixner, Uros Bizjak,
   Xin Li)

 Thanks,

Ingo

25 May 2025: Scheduler updates for v6.16 [+ + +]



Scheduler updates for v6.16:

Core & fair scheduler changes:

  - Tweak wait_task_inactive() to force dequeue sched_delayed tasks
    (John Stultz)

  - Adhere to place_entity() constraints (Peter Zijlstra)

  - Allow decaying util_est when util_avg > CPU capacity (Pierre Gondois)

  - Fix up wake_up_sync() vs DELAYED_DEQUEUE (Xuewen Yan)

Energy management:

  - Introduce sched_update_asym_prefer_cpu() (K Prateek Nayak)

  - cpufreq/amd-pstate: Update asym_prefer_cpu when core rankings change
    (K Prateek Nayak)

  - Align uclamp and util_est and call before freq update (Xuewen Yan)

CPU isolation:

  - Make use of more than one housekeeping CPU (Phil Auld)

RT scheduler:

  - Fix race in push_rt_task() (Harshit Agarwal)

  - Add kernel cmdline option for rt_group_sched (Michal Koutný)

Scheduler topology support:

  - Improve topology_span_sane speed (Steve Wahl)

Scheduler debugging:

  - Move and extend the sched_process_exit() tracepoint (Andrii Nakryiko)

  - Add RT_GROUP WARN checks for non-root task_groups (Michal Koutný)

  - Fix trace_sched_switch(.prev_state) (Peter Zijlstra)

  - Untangle cond_resched() and live-patching (Peter Zijlstra)

Fixes and cleanups:

  - Misc fixes and cleanups (K Prateek Nayak, Michal Koutný,
    Peter Zijlstra, Xuewen Yan)

 Thanks,

Ingo

25 May 2025: Performance events updates for v6.16 [+ + +]



Performance events updates for v6.16:

Core & generic-arch updates:

 - Add support for dynamic constraints and propagate it to
   the Intel driver (Kan Liang)

 - Fix & enhance driver-specific throttling support (Kan Liang)

 - Record sample last_period before updating on the
   x86 and PowerPC platforms (Mark Barnett)

 - Make perf_pmu_unregister() usable (Peter Zijlstra)

 - Unify perf_event_free_task() / perf_event_exit_task_context()
   (Peter Zijlstra)

 - Simplify perf_event_release_kernel() and perf_event_free_task()
   (Peter Zijlstra)

 - Allocate non-contiguous AUX pages by default (Yabin Cui)

Uprobes updates:

 - Add support to emulate NOP instructions (Jiri Olsa)

 - selftests/bpf: Add 5-byte NOP uprobe trigger benchmark (Jiri Olsa)

x86 Intel PMU enhancements:

 - Support Intel Auto Counter Reload [ACR] (Kan Liang)

 - Add PMU support for Clearwater Forest (Dapeng Mi)

 - Arch-PEBS preparatory changes: (Dapeng Mi)

   - Parse CPUID archPerfmonExt leaves for non-hybrid CPUs
   - Decouple BTS initialization from PEBS initialization
   - Introduce pairs of PEBS static calls

x86 AMD PMU enhancements:

 - Use hrtimer for handling overflows in the AMD uncore driver
   (Sandipan Das)

 - Prevent UMC counters from saturating (Sandipan Das)

Fixes and cleanups:

 - Fix put_ctx() ordering (Frederic Weisbecker)

 - Fix irq work dereferencing garbage (Frederic Weisbecker)

 - Misc fixes and cleanups (Changbin Du, Frederic Weisbecker,
   Ian Rogers, Ingo Molnar, Kan Liang, Peter Zijlstra, Qing Wang,
   Sandipan Das, Thorsten Blum)

 Thanks,

Ingo

25 May 2025: locking changes for v6.16 [+ + +]



Locking changes for v6.16:

  Futexes:

   - Add support for task local hash maps (Sebastian Andrzej Siewior,
     Peter Zijlstra)

   - Implement the FUTEX2_NUMA ABI, which feature extends the futex
     interface to be NUMA-aware. On NUMA-aware futexes a second u32
     word containing the NUMA node is added to after the u32 futex value
     word. (Peter Zijlstra)

   - Implement the FUTEX2_MPOL ABI, which feature extends the futex
     interface to be mempolicy-aware as well, to further refine futex
     node mappings and lookups. (Peter Zijlstra)

  Locking primitives:

   - Misc cleanups (Andy Shevchenko, Borislav Petkov, Colin Ian King,
                    Ingo Molnar, Nam Cao, Peter Zijlstra)

  Lockdep:

   - Prevent abuse of lockdep subclasses (Waiman Long)
   - Add number of dynamic keys to /proc/lockdep_stats (Waiman Long)

Plus misc cleanups and fixes.

Note that the tree includes the following dependent out-of-subsystem
changes as well:

 - rcuref: Provide rcuref_is_dead()
 - mm: Add vmalloc_huge_node()
 - mm: Add the mmap_read_lock guard to <linux/mmap_lock.h>

 Thanks,

Ingo

25 May 2025: objtool changes for v6.16 [+ + +]



objtool changes for v6.15:

 - Speed up SHT_GROUP reindexing (Josh Poimboeuf)

 - Fix up st_info in COMDAT group section (Rong Xu)

 Thanks,

Ingo

 
24 May 2025: bcachefs changes for 6.16 [+ + +]
bcachefs updates for 6.16

Lots of changes:

- Poisoned extents can now be moved: this lets us handle bitrotted data
  without deleting it. For now, reading from poisoned extents only
  returns -EIO: in the future we'll have an API for specifying "read
  this data even if there were bitflips".

- Incompatible features may now be enabled at runtime, via
  "opts/version_upgrade" in sysfs. Toggle it to incompatible, and then
  toggle it back - option changes via the sysfs interface are
  persistent.

- Various changes to support deployable disk images:
  - RO mounts now use less memory
  - Images may be stripped of alloc info, particularly useful for
    slimming them down if they will primarily be mounted RO. Alloc info
    will be automatically regenerated on first RW mount, and this is
    quite fast.
  - Filesystem images generated with 'bcachefs image' will be
    automatically resized the first time they're mounted on a larger
    device.

    The images 'bcachefs image' generates with compression enabled have
    been comparable in size to those generated by squashfs and erofs -
    but you get a full RW capable filesystem.

- Major error message improvements for btree node reads, data reads,
  and elsewhere. We now build up a single error message that lists all
  the errors encountered, actions taken to repair, and success/failure
  of the IO. This extends to other error paths that may kick off other
  actions, e.g. scheduling recovery passes: actions we took because of
  an error are included in that error message, with grouping/indentation
  so we can see what caused what.

- Repair/self healing:
  - We can now kick off recovery passes and run them in the background
    if we detect errors. Currently, this is just used by code that walks
    backpointers; we now also check for missing backpointers at runtime
    and run check_extents_to_backpointers if required. The messy 6.14
    upgrade left missing backpointers for some users, and this will
    correct that automatically instead of requiring a manual fsck - some
    users noticed this as copygc spinning and not making progress.

    In the future, as more recovery passes come online, we'll be able to
    repair and recover from nearly anything - except for unreadable
    btree nodes, and that's why you're using replication, of course -
    without shutting down the filesystem.

  - There's a new recovery pass, for checking the rebalance_work btree,
    which tracks extents that rebalance will process later.

- Hardening:
  - Close the last known hole in btree iterator/btree locking
    assertions: path->should_be_locked paths must stay locked until the
    end of the transaction. This shook out a few bugs, including a
    performance issue that was causing unnecessary path_upgrade
    transaction restarts.

- Performance;
  - Faster snapshot deletion: this is an incompatible feature, as it
    requires new sentinal values, for safety. Snapshot deletion no
    longer has to do a full metadata scan, it now just scans the inodes
    btree: if an extent/dirent/xattr is present for a given snapshot ID,
    we already require that an inode be present with that same snapshot
    ID.

    If/when users hit scalability limits again (ridiculously huge
    filesystems with lots of inodes, and many sparse snapshots), let me
    know - the next step will be to add an index from snapshot ID ->
    inode number, which won't be too hard.

  - Faster device removal: the "scan for pointers to this device" no
    longer does a full metadata scan, instead it walks backpointers.
    Like fast snapshot deletion this is another incompat feature: it
    also requires a new sentinal value, because we don't want to reuse
    these device IDs until after a fsck.

  - We're now coalescing redundant accounting updates prior to
    transaction commit, taking some pressure off the journal. Shortly
    we'll also be doing multiple extent updates in a transaction in the
    main write path, which combined with the previous should drastically
    cut down on the amount of metadata updates we have to journal.

- Stack usage improvements: All allocator state has been moved off the
  stack

- Debug improvements:
  - enumerated refcounts: The debug code previously used for filesystem
    write refs is now a small library, and used for other heavily used
    refcounts. Different users of a refcount are enumerated, making it
    much easier to debug refcount issues.

  - Async object debugging: There's a new kconfig option that makes
    various async objects (different types of bios, data updates, write
    ops, etc.) visible in debugfs, and it should be fast enough to leave
    on in production.

  - Various sets of assertions no longer require CONFIG_BCACHEFS_DEBUG,
    instead they're controlled by module parameters and static keys,
    meaning users won't need to compile custom kernels as often to help
    debug issues.

  - bch2_trans_kmalloc() calls can be tracked (there's a new kconfig
    option); with it on you can check the btree_transaction_stats in
    debugfs to see the bch2_trans_kmalloc() calls a transaction did when
    it used the most memory.

 
23 May 2025: gfs2 changes for 6.16 [+ + +]
please consider pulling the following gfs2 changes for 6.16.

Thanks,
Andreas

gfs2 changes

- Fix the long-standing warnings in inode_to_wb() when CONFIG_LOCKDEP is
  enabled: gfs2 doesn't support cgroup writeback and so inode->i_wb will never
  change.  This is the counterpart of commit 9e888998ea4d ("writeback: fix
  false warning in inode_to_wb()").

- Fix a hang introduced by commit 8d391972ae2d ("gfs2: Remove
  __gfs2_writepage()"): prevent gfs2_logd from creating transactions for jdata
  pages while trying to flush the log.

- Fix a race between gfs2_create_inode() and gfs2_evict_inode() by deallocating
  partially created inodes on the gfs2_create_inode() error path.

- Fix a bug in the journal head lookup code that could cause mount to fail
  after successful recovery.

- Various smaller fixes and cleanups from various people.

23 May 2025: Kselftest next update for Linux 6.16-rc1 [+ + +]
Hi Linus,


-- Fixes
    - cpufreq test to not double suspend in rtcwake case.
    - compile error in pid_namespace test.
    - run_kselftest.sh to use readlink if realpath is not available.
    - cpufreq basic read and update testcases.
    - ftrace to add poll to a gen_file so test can find it at run-time.
    - spelling errors in perf_events test.

diff is attached.

thanks,
-- Shuah

linux_kselftest-next-6.16-rc1

-- Fixes
    - cpufreq test to not double suspend in rtcwake case.
    - compile error in pid_namespace test.
    - run_kselftest.sh to use readlink if realpath is not available.
    - cpufreq basic read and update testcases.
    - ftrace to add poll to a gen_file so test can find it at run-time.
    - spelling errors in perf_events test.

23 May 2025: kunit next update for Linux 6.16-rc1 [+ + +]
Hi Linus,


- Enables qemu_config for riscv32, sparc 64-bit, PowerPC 32-bit BE and
   64-bit LE.
- Enables CONFIG_SPARC32 to clearly differentiate between sparc 32-bit
   and 64-bit configurations.
- Enables CONFIG_CPU_BIG_ENDIAN to clearly differentiate between powerpc
   LE and BE configurations.
- Adds feature to list available architectures to kunit tool.
- Fixes to bugs and changes to documentation.

diff is attached.

thanks,
-- Shuah

linux_kselftest-kunit-6.16-rc1

- Enables qemu_config for riscv32, sparc 64-bit, PowerPC 32-bit BE and
   64-bit LE.
- Enables CONFIG_SPARC32 to clearly differentiate between sparc 32-bit
   and 64-bit configurations.
- Enables CONFIG_CPU_BIG_ENDIAN to clearly differentiate between powerpc
   LE and BE configurations.
- Add feature to list available architectures to kunit tool.
- Fixes to bugs and changes to documentation.

23 May 2025: s390 updates for 6.16 merge window [+ + +]
please pull s390 updates for the 6.16 merge window.

Thanks,
Heiko

s390 updates for 6.16 merge window

- Large rework of the protected key crypto code to allow for asynchronous
  handling without memory allocation

- Speed up system call entry/exit path by re-implementing lazy ASCE
  handling

- Add module autoload support for the diag288_wdt watchdog device driver

- Get rid of s390 specific strcpy() and strncpy() implementations, and
  switch all remaining users to strscpy() when possible

- Various other small fixes and improvements

23 May 2025: KVM: x86: Changes for 6.16 [+ + +]
The calm before the storm...  Though I suppose you already weathered a major
TDX storm :-)
23 May 2025: vfs iomap [+ + +]
/* Summary */

This contains iomap updates for this cycle:

- More fallout and preparatory work associated with the folio batch prototype
  posted a while back. Mainly this just cleans up some of the helpers
  and pushes some pos/len trimming further down in the write begin path.

- Add missing flag descriptions to the iomap documentation.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline

No known conflicts.

Merge conflicts with other trees

No known conflicts.

vfs-6.16-rc1.iomap

23 May 2025: vfs selftests [+ + +]
/* Summary */

This contains various cleanups, fixes, and extensions for out filesystem
selftests.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline

No known conflicts.

Merge conflicts with other trees

No known conflicts.

vfs-6.16-rc1.selftests

23 May 2025: vfs pidfs [+ + +]
This pull request serves as the base for the coredump pull request I'm
sending separately:

https://lore.kernel.org/20250523-vfs-coredump-66643655f2fe@brauner

The reason is simply that this branch has been in -next for such a long
time that clearly delineating both topics by moving things around would
have caused more churn for little gain since the relationship is tight
enough that it fits into both categories.

/* Summary */

This contains pidfs updates for this cycle:

Features:

- Allow to hand out pidfds for reaped tasks for AF_UNIX SO_PEERPIDFD
  socket option.

  SO_PEERPIDFD is a socket option that allows to retrieve a pidfd for
  the process that called connect() or listen(). This is heavily used to
  safely authenticate clients in userspace avoiding security bugs due to
  pid recycling races (dbus, polkit, systemd, etc.).

  SO_PEERPIDFD currently doesn't support handing out pidfds if the
  sk->sk_peer_pid thread-group leader has already been reaped. In this
  case it currently returns EINVAL. Userspace still wants to get a pidfd
  for a reaped process to have a stable handle it can pass on. This is
  especially useful now that it is possible to retrieve exit information
  through a pidfd via the PIDFD_GET_INFO ioctl()'s PIDFD_INFO_EXIT flag.

  Another summary has been provided by David Rheinsberg:

  > A pidfd can outlive the task it refers to, and thus user-space must
  > already be prepared that the task underlying a pidfd is gone at the time
  > they get their hands on the pidfd. For instance, resolving the pidfd to
  > a PID via the fdinfo must be prepared to read `-1`.
  >
  > Despite user-space knowing that a pidfd might be stale, several kernel
  > APIs currently add another layer that checks for this. In particular,
  > SO_PEERPIDFD returns `EINVAL` if the peer-task was already reaped,
  > but returns a stale pidfd if the task is reaped immediately after the
  > respective alive-check.
  >
  > This has the unfortunate effect that user-space now has two ways to
  > check for the exact same scenario: A syscall might return
  > EINVAL/ESRCH/... *or* the pidfd might be stale, even though there is no
  > particular reason to distinguish both cases. This also propagates
  > through user-space APIs, which pass on pidfds. They must be prepared to
  > pass on `-1` *or* the pidfd, because there is no guaranteed way to get a
  > stale pidfd from the kernel.
  > Userspace must already deal with a pidfd referring to a reaped task as
  > the task may exit and get reaped at any time will there are still many
  > pidfds referring to it.

  In order to allow handing out reaped pidfd SO_PEERPIDFD needs to ensure
  that PIDFD_INFO_EXIT information is available whenever a pidfd for a
  reaped task is created by PIDFD_INFO_EXIT. The uapi promises that reaped
  pidfds are only handed out if it is guaranteed that the caller sees the
  exit information:

  TEST_F(pidfd_info, success_reaped)
  {
          struct pidfd_info info = {
                  .mask = PIDFD_INFO_CGROUPID | PIDFD_INFO_EXIT,
          };

          /*
           * Process has already been reaped and PIDFD_INFO_EXIT been set.
           * Verify that we can retrieve the exit status of the process.
           */
          ASSERT_EQ(ioctl(self->child_pidfd4, PIDFD_GET_INFO, &info), 0);
          ASSERT_FALSE(!!(info.mask & PIDFD_INFO_CREDS));
          ASSERT_TRUE(!!(info.mask & PIDFD_INFO_EXIT));
          ASSERT_TRUE(WIFEXITED(info.exit_code));
          ASSERT_EQ(WEXITSTATUS(info.exit_code), 0);
  }

  To hand out pidfds for reaped processes we thus allocate a pidfs entry
  for the relevant sk->sk_peer_pid at the time the sk->sk_peer_pid is
  stashed and drop it when the socket is destroyed. This guarantees that
  exit information will always be recorded for the sk->sk_peer_pid task
  and we can hand out pidfds for reaped processes.

- Hand a pidfd to the coredump usermode helper process.

  Give userspace a way to instruct the kernel to install a pidfd for the
  crashing process into the process started as a usermode helper. There's
  still tricky race-windows that cannot be easily or sometimes not closed
  at all by userspace. There's various ways like looking at the start time
  of a process to make sure that the usermode helper process is started
  after the crashing process but it's all very very brittle and fraught
  with peril.

  The crashed-but-not-reaped process can be killed by userspace before
  coredump processing programs like systemd-coredump have had time to
  manually open a PIDFD from the PID the kernel provides them, which means
  they can be tricked into reading from an arbitrary process, and they run
  with full privileges as they are usermode helper processes.

  Even if that specific race-window wouldn't exist it's still the safest
  and cleanest way to let the kernel provide the pidfd directly instead of
  requiring userspace to do it manually. In parallel with this commit we
  already have systemd adding support for this in [1].

  When the usermode helper process is forked we install a pidfd file
  descriptor three into the usermode helper's file descriptor table so
  it's available to the exec'd program.

  Since usermode helpers are either children of the system_unbound_wq
  workqueue or kthreadd we know that the file descriptor table is empty
  and can thus always use three as the file descriptor number.

  Note, that we'll install a pidfd for the thread-group leader even if a
  subthread is calling do_coredump(). We know that task linkage hasn't
  been removed yet and even if this @current isn't the actual thread-group
  leader we know that the thread-group leader cannot be reaped until
  @current has exited.

- Allow to tell when a task has not been found from finding the wrong
  task when creating a pidfd.

  We currently report EINVAL whenever a struct pid has no tasked attached
  anymore thereby conflating two concepts:

  (1) The task has already been reaped.
  (2) The caller requested a pidfd for a thread-group leader but the pid
      actually references a struct pid that isn't used as a thread-group
      leader.

  This is causing issues for non-threaded workloads as in where they
  expect ESRCH to be reported, not EINVAL.

  So allow userspace to reliably distinguish between (1) and (2).

- Make it possible to detect when a pidfs entry would outlive the struct
  pid it pinned.

- Add a range of new selftests.

Cleanups:

- Remove unneeded NULL check from pidfd_prepare() for passed struct pid.

- Avoid pointless reference count bump during release_task().

Fixes:

- Various fixes to the pidfd and coredump selftests.

- Fix error handling for replace_fd() when spawning coredump usermode helper.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline

No known conflicts.

Merge conflicts with other trees

No known conflicts.

vfs-6.16-rc1.pidfs

23 May 2025: vfs mount [+ + +]
Unfortunately this had to be rebased as this had patches in it who were
also present in another branch under different hashes. Because I both
merged them and exposed them as one set in -next this didn't get
noticed. The patches here are trivial though.

/* Summary */

This contains minor mount updates for this cycle:

- mnt->mnt_devname can never be NULL so simplify the code handling that case.

- Add a comment about concurrent changes during statmount() and listmount().

- Update the STATMOUNT_SUPPORTED macro.

- Convert mount flags to an enum.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline

No known conflicts.

Merge conflicts with other trees

No known conflicts.

vfs-6.16-rc1.mount

23 May 2025: vfs misc [+ + +]
/* Summary */

This contains the usual selections of misc updates for this cycle.

Features:

- Use folios for symlinks in the page cache

  FUSE already uses folios for its symlinks. Mirror that conversion in
  the generic code and the NFS code. That lets us get rid of a few
  folio->page->folio conversions in this path, and some of the few
  remaining users of read_cache_page() / read_mapping_page().

- Try and make a few filesystem operations killable on the VFS
  inode->i_mutex level.

- Add sysctl vfs_cache_pressure_denom for bulk file operations

  Some workloads need to preserve more dentries than we currently allow
  through out sysctl interface.

  A HDFS servers with 12 HDDs per server, on a HDFS datanode startup
  involves scanning all files and caching their metadata (including
  dentries and inodes) in memory. Each HDD contains approximately 2
  million files, resulting in a total of ~20 million cached dentries
  after initialization.

  To minimize dentry reclamation, they set vfs_cache_pressure to 1.
  Despite this configuration, memory pressure conditions can still
  trigger reclamation of up to 50% of cached dentries, reducing the
  cache from 20 million to approximately 10 million entries. During the
  subsequent cache rebuild period, any HDFS datanode restart operation
  incurs substantial latency penalties until full cache recovery
  completes.

  To maintain service stability, more dentries need to be preserved
  during memory reclamation. The current minimum reclaim ratio (1/100 of
  total dentries) remains too aggressive for such workload. This patch
  introduces vfs_cache_pressure_denom for more granular cache pressure
  control. The configuration [vfs_cache_pressure=1,
  vfs_cache_pressure_denom=10000] effectively maintains the full 20
  million dentry cache under memory pressure, preventing datanode
  restart performance degradation.

- Avoid some jumps in inode_permission() using likely()/unlikely().

- Avid a memory access which is most likely a cache miss when descending
  into devcgroup_inode_permission().

- Add fastpath predicts for stat() and fdput().

- Anonymous inodes currently don't come with a proper mode causing
  issues in the kernel when we want to add useful VFS debug assert. Fix
  that by giving them a proper mode and masking it off when we report it
  to userspace which relies on them not having any mode.

- Anonymous inodes currently allow to change inode attributes because
  the VFS falls back to simple_setattr() if i_op->setattr isn't
  implemented. This means the ownership and mode for every single user
  of anon_inode_inode can be changed. Block that as it's either useless
  or actively harmful. If specific ownership is needed the respective
  subsystem should allocate anonymous inodes from their own private
  superblock.

- Raise SB_I_NODEV and SB_I_NOEXEC on the anonymous inode superblock.

- Add proper tests for anonymous inode behavior.

- Make it easy to detect proper anonymous inodes and to ensure that we
  can detect them in codepaths such as readahead().

Cleanups:

- Port pidfs to the new anon_inode_{g,s}etattr() helpers.

- Try to remove the uselib() system call.

- Add unlikely branch hint return path for poll.

- Add unlikely branch hint on return path for core_sys_select.

- Don't allow signals to interrupt getdents copying for fuse.

- Provide a size hint to dir_context for during readdir().

- Use writeback_iter directly in mpage_writepages.

- Update compression and mtime descriptions in initramfs documentation.

- Update main netfs API document.

- Remove useless plus one in super_cache_scan().

- Remove unnecessary NULL-check guards during setns().

- Add separate separate {get,put}_cgroup_ns no-op cases.

Fixes:

- Fix typo in root= kernel parameter description.

- Use KERN_INFO for infof()|info_plog()|infofc().

- Correct comments of fs_validate_description()

- Mark an unlikely if condition with unlikely() in vfs_parse_monolithic_sep().

- Delete macro fsparam_u32hex()

- Remove unused and problematic validate_constant_table().

- Fix potential unsigned integer underflow in fs_name().

- Make file-nr output the total allocated file handles.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline

No known conflicts.

Merge conflicts with other trees

This will have a merge conflict with the vfs freeze pull request sent as:

https://lore.kernel.org/20250523-vfs-freeze-8e3934479cba@brauner

that can be resolved as follows:

vfs-6.16-rc1.misc

23 May 2025: vfs writepages [+ + +]
/* Summary */

This converts vboxfs from ->writepage() to ->writepages(). This was the last
user of the ->writepage() method. So remove ->writepage() completely and all
references to it.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline

No known conflicts.

Merge conflicts with other trees

No known conflicts.

vfs-6.16-rc1.writepage

23 May 2025: vfs freeze [+ + +]
/* Summary */

This contains various filesystem freezing related work for this cycle:

- Allow the power subsystem to support filesystem freeze for suspend and
  hibernate.

  Now all the pieces are in place to actually allow the power subsystem
  to freeze/thaw filesystems during suspend/resume. Filesystems are only
  frozen and thawed if the power subsystem does actually own the freeze.

  If the filesystem is already frozen by the time we've frozen all
  userspace processes we don't care to freeze it again. That's
  userspace's job once the process resumes. We only actually freeze
  filesystems if we absolutely have to and we ignore other failures to
  freeze.

  We could bubble up errors and fail suspend/resume if the error isn't
  EBUSY (aka it's already frozen) but I don't think that this is worth
  it. Filesystem freezing during suspend/resume is best-effort. If the
  user has 500 ext4 filesystems mounted and 4 fail to freeze for
  whatever reason then we simply skip them.

  What we have now is already a big improvement and let's see how we
  fare with it before making our lives even harder (and uglier) than we
  have to.

- Allow efivars to support freeze and thaw

  Allow efivarfs to partake to resync variable state during system
  hibernation and suspend. Add freeze/thaw support.

  This is a pretty straightforward implementation. We simply add regular
  freeze/thaw support for both userspace and the kernel. efivars is the
  first pseudofilesystem that adds support for filesystem freezing and
  thawing.

  The simplicity comes from the fact that we simply always resync
  variable state after efivarfs has been frozen. It doesn't matter
  whether that's because of suspend, userspace initiated freeze or
  hibernation. Efivars is simple enough that it doesn't matter that we
  walk all dentries. There are no directories and there aren't insane
  amounts of entries and both freeze/thaw are already heavy-handed
  operations. If userspace initiated a freeze/thaw cycle they would need
  CAP_SYS_ADMIN in the initial user namespace (as that's where efivarfs
  is mounted) so it can't be triggered by random userspace. IOW, we
  really really don't care.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline

This has a merge conflict with mainline that can be resolved as follows:

vfs-6.16-rc1.super

23 May 2025: vfs mount api [+ + +]
/* Summary */

This converts the bfs and omfs filesystems to the new mount api.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline

No known conflicts.

Merge conflicts with other trees

No known conflicts.

vfs-6.16-rc1.mount.api

23 May 2025: USB serial updates for 6.16-rc1 [+ + +]
USB serial updates for 6.16-rc1

Here are the USB serial updates for 6.16-rc1, including:

 - fix of an incorrect const cast
 - removal of a bogus read urb sanity check
 - support for a couple of new pl2303 device types

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

23 May 2025: i2c-host for v6.16 [+ + +]
Hi Wolfram,

Here is a relatively small pull request for 6.16. It mainly
includes cleanups, refactorings, some driver improvements, new
bindings and just one new driver.

A few patches intended for this merge window arrived in the past
couple of weeks, but I chose to leave them out for now. If they
mature and get enough testing, I may send a part 2 pull request
next week. Perhaps I am being a bit too cautious, but because I
have experienced a few build issues this release cycle, I want to
improve the flow and avoid avoidable mistakes.

I wish you a great weekend,
Andi

i2c-host updates for v6.16

Cleanups and refactorings
- Many drivers switched to dev_err_probe()
- Generic cleanups applied to designware, iproc, ismt, mlxbf,
  npcm7xx, qcom-geni, pasemi, and thunderx
- davinci: declare I2C mangling support among I2C features
- designware: clean up DTS handling
- designware: fix PM runtime on driver unregister
- imx: improve error logging during probe
- lpc2k: improve checks in probe error path
- xgene-slimpro: improve PCC shared memory handling
- pasemi: improve error handling in reset, smbus clear, timeouts
- tegra: validate buffer length during transfers
- wmt: convert binding to YAML format

Improvements and extended support:
- microchip-core: add SMBus support
- mlxbf: add support for repeated start in block transfers
- mlxbf: improve timer configuration
- npcm: attempt clock toggle recovery before failing init
- octeon: add support for block mode operations
- pasemi: add support for unjam device feature
- riic: add support for bus recovery

New device support:
- MediaTek Dimensity 1200 (MT6893)
- Sophgo SG2044
- Renesas RZ/V2N (R9A09G056)
- Rockchip RK3528
- AMD ISP (new driver)

Core changes:
- i2c-core: add support for Write Disable-aware SPD

 
22 May 2025: interconnect changes for 6.16 [+ + +]
This is the pull request with interconnect changes for the v6.16-rc1 merge
window. It contains core and driver changes. As always, the summary is in
the signed tag.

All patches have been in linux-next for a while. There are currently no

Thanks,
Georgi


interconnect changes for 6.16

This pull request contains the interconnect changes for the 6.16-rc1
merge window. The core and driver changes are listed below.

Core changes:
- Add support for dynamic id allocation, that allows creating
  multiple instances of the same provider

Driver changes:
- Add driver for the EPSS L3 instances on SA8775P SoC
- Add QoS support for SM8650 SoC
- Add some missing nodes for SM8650
- Misc dt-binding style and indentation fixes

Signed-off-by: Georgi Djakov <[email protected]>

22 May 2025: LoongArch KVM changes for v6.16 [+ + +]
LoongArch KVM changes for v6.16

1. Don't flush tlb if HW PTW supported.
2. Add LoongArch KVM selftests support.

 
21 May 2025: Btrfs updates for 6.16 [+ + +]
Hi,

please pull the following updates for btrfs. Apart from numerous
cleanups, there are some performance improvements and one minor mount
option update. There's one more radix-tree conversion (one remaining),
and continued work towards enabling large folios (almost finished).

Thanks.

Performance:

- extent buffer conversion to xarray gains throughput and runtime
  improvements on metadata heavy operations doing writeback (sample test
  shows +50% throughput, -33% runtime)

- extent io tree cleanups lead to performance improvements by avoiding
  unnecessary searches or repeated searches

- more efficient extent unpinning when committing transaction (estimated
  run time improvement 3-5%)

User visible changes:

- remove standalone mount option 'nologreplay', deprecated in 5.9,
  replacement is 'rescue=nologreplay'

- in scrub, update reporting, add back device stats message after
  detected errors (accidentally removed during recent refactoring)

Core:

- convert extent buffer radix tree to xarray

- in subpage mode, move block perfect compression out of experimental
  build

- in zoned mode, introduce sub block groups to allow managing special
  block groups, like the one for relocation or tree-log, to handle some
  corner cases of ENOSPC

- in scrub, simplify bitmaps for block tracking status

- continued preparations for large folios
  - remove assertions for folio order 0
  - add support where missing: compression, buffered write, defrag, hole
    punching, subpage, send

- fix fsync of files with no hard links not persisting deletion

- reject tree blocks which are not nodesize aligned, a precaution from
  4.9 times

- move transaction abort calls closer to the error sites

- remove usage of some struct bio_vec internals

- simplifications in extent map

- extent IO cleanups and optimizations

- error handling improvements

- enhanced ASSERT() macro with optional format strings

- cleanups
  - remove unused code
  - naming unifications, dropped __, added prefix
  - merge similar functions
  - use common helpers for various data structures

 
20 May 2025: Timer drivers for v6.16-rc1 [+ + +]
Hi Thomas,

below is unchanged on purpose assuming you have permission to 'ssh'
to the server.

Please consider pulling the following changes since commit
0af2f6be1b4281385b618cb86ad946eded089ac8:

  Linux 6.15-rc1 (2025-04-06 13:11:33 -0700)

are available in the Git repository at:

  ssh://[email protected]/pub/scm/linux/kernel/git/daniel.lezcano/linux tags/timers-v6.16-rc1

for you to fetch changes up to d204e391a0d83d73fc312e71fc62896c4d8bae79:

  clocksource/drivers/renesas-ostm: Unconditionally enable reprobe support (2025-05-16 13:33:11 +0200)

- Add the System Timer Module driver for the S32G NXP platforms
  (Daniel Lezcano)

- Convert the remaining text formatted DT bindings in schemas (Rob
  Herring)

- Fix a Kconfig dependency on the atmel TCB driver to prevent a
  compilation warning when CONFIG_OF is disabled (Arnd Bergmann)

- Fix self-pinging and support gettimeleft in the watchdog part of the tegra186
  timer (Pohsun Su)

- Add the Sophgo SG2044 ACLINT timer binding (Inochi Amaoto)

- Add the EcoNet Timer HPT driver along with the DT bindings (Caleb
  James DeLisle)

- Add the Renesas R9A09G056 compatible string bindings and enable
  reprobe support on the Renesas OSTM (Lab Prabhakar)

 
19 May 2025: thermal drivers changes for v6.16-rc1 [+ + +]
Hi Rafael,

Please consider pulling the following changes since commit
82f2b0b97b36ee3fcddf0f0780a9a0825d52fec3:

  Linux 6.15-rc6 (2025-05-11 14:54:11 -0700)

are available in the Git repository at:

  ssh://[email protected]/pub/scm/linux/kernel/git/thermal/linux.git tags/thermal-v6.16-rc1

for you to fetch changes up to e23cba0ab49a9cf95e9bc3a86cfbf336b0e285f6:

  thermal/drivers/airoha: Fix spelling mistake (2025-05-16 12:50:01 +0200)

- Make the Hisilicon driver to compile by default when ARCH_HISI is
  set (Krzysztof Kozlowski)

- Cleanup printk format with use of %pC instead of %pCn in the bcm2835
  driver (Luca Ceresoli)

- Fix variable naming coding style in the AmLogic driver (Enrique
  Isidoro Vazquez Ramos)

- Fix missing debugfs entry removal on failure by using the devm_
  variant in the LVTS driver (AngeloGioacchino Del Regno)

- Remove the unused lvts_debugfs_exit() function as the devm variant
  introduced before takes care of removing the debugfs entry in the
  LVTS driver (Arnd Bergmann)

- Add the Airoha EN7581 thermal sensor support along with its DT
  bindings (Christian Marangi)

- Add ipq5018 compatible string DT binding, cleanup and add its suppot
  in the QCom Tsens driver driver (Sricharan Ramabadhran and George
  Moussalem)

- Fix comments typos in the Airoha driver (Christian Marangi)

 
17 May 2025: SOC FSL for 6.16 [+ + +]
Hi Arnd,


Thanks
Christophe

FSL SOC Changes for 6.16:
   - Various fixes and cleanups from Ioana on fsl-mc bus driver
   - Other misc fixes on fsl-mc bus driver
   - A build fix on DPAA2 driver
   - Some preparation work from Kees on qbman driver
   - Some cleanup on FSL qe interrupt driver init

 
16 May 2025: cpupower update for Linux 6.16-rc1 [+ + +]
Hi Rafael,


Adds systemd service to run cpupower and changes binding's makefile
to use -lcpupower.

         cpupower: add a systemd service to run cpupower
         cpupower: do not write DESTDIR to cpupower.service
         cpupower: do not call systemctl at install time
         cpupower: do not install files to /etc/default/
         cpupower: change binding's makefile to use -lcpupower

diff is attached.

thanks,
-- Shuah

linux-cpupower-6.16-rc1

Adds systemd service to run cpupower and changes binding's makefile
to use -lcpupower.

         cpupower: add a systemd service to run cpupower
         cpupower: do not write DESTDIR to cpupower.service
         cpupower: do not call systemctl at install time
         cpupower: do not install files to /etc/default/
         cpupower: change binding's makefile to use -lcpupower

16 May 2025: memory: drivers for v6.16, part two [+ + +]
Hi,

Second pull request with fixes for introduced driver in previous pull. On top
of the previous pull request.

Best regards,
Krzysztof


Memory controller drivers for v6.16, part two

Few fixes for STM32 Octo Memory Manager driver introduced for the same
cycle in few commits before.  These fixes were reported only after wider
coverage by bots through linux-next exposure.

16 May 2025: samsung: drivers part two for v6.16 [+ + +]
Hi,

On top of previous drivers pul request.

Best regards,
Krzysztof


Samsung SoC drivers for v6.16, part two

Add CPU hotplug support on Google GS101 by toggling respective bits in
secondary PMU intr block (Power Management Unit (PMU) Interrupt
Generation) from the main PMU driver.

16 May 2025: configfs for v6.16 [+ + +]
This is my first pull request after picking up configfs [1], and my
first pull request to you. I hope I got everything right!

Summary
=======

This pull request contains configfs changes for v6.16:

 - Allow creation of rw files with custom permissions. This allows
   drivers to better protect secrets written through configfs.

 - Fix a bug where an error condition did not cause an early return
   while populating attributes.

 - Report ENOMEM rather than EFAULT when kvasprintf() fails in
   config_item_set_name().

 - Add a Rust API for configfs. This allows Rust drivers to use configfs
   through a memory safe interface.

Merge conflicts with other trees

This contains a merge conflict with drm-nova:

configfs-for-v6.16

 
14 May 2025: Chinese-doc changes for v6.16-rc1 [+ + +]
Chinese translation docs for 6.16-rc1

This is the Chinese translation subtree for 6.16-rc1. It just
includes few changes:
        - MAINTAINERS: Change Yanteng's email address
        - docs/zh_CN: Add how-to of Chinese translation
        - Add networking translation index
        - Docs/zh_CN: Translate msg_zerocopy.rst to Simplified Chinese

Above patches are tested by 'make htmldocs/pdfdocs'

Signed-off-by: Alex Shi <[email protected]>

 
13 May 2025: pinctrl: samsung: drivers for v6.16 [+ + +]
Samsung pinctrl drivers changes for v6.16

Refactor the driver suspend and resume to handle Google GS101 EINT GPIO
pin banks and add the alive pin bank for that SoC.

13 May 2025: mux drivers improvements for v6.16 [+ + +]
Hi Greg,

(regulator support for Lenovo T14s laptop).  These were on mailing lists for
some time (one even from 2024) and they were never picked up, acknowledged nor
rejected.

Best regards,
Krzysztof


Mux drivers for v6.16

Few cleanups and fixes for the mux drivers:
1. Simplify with spi_get_device_match_data().
2. Fix -Wunused-const-variable and -Wvoid-pointer-to-enum-cast warnings.
3. GPIO mux: add optional regulator for Lenovo T14s laptop headset.
4. MMIO mux: avoid using syscon's device_node_to_regmap(), due to
   changes in the syscon code.

13 May 2025: clk: samsung: drivers for v6.16 [+ + +]
Samsung SoC clock drivers changes for 6.16

1. ExynosAutov920:
 - Add CPU cluster CL0, CL1 and CL2 clock controllers.
 - Fix HSI1 USBDRD clock parents.

2. Minor cleanup for Exynos4 drivers.

13 May 2025: Rust ALLOC for v6.16 [+ + +]
Hi Miguel,


Most of them are new methods for Vec, required by binder and nova-core.

All commits have been in linux-next for at least a few days -- no conflicts
expected.

- Danilo

Alloc changes for v6.16

Box:
  - support for type coercion, e.g. `Box<T>` to `Box<dyn U>` if T
    implements U

Vec:
  - implement new methods (prerequisites for nova-core and binder)
    - Vec::truncate()
    - Vec::resize()
    - Vec::clear()
    - Vec::pop()
    - Vec::push_within_capacity()
      - new error type: PushError
    - Vec::drain_all()
    - Vec::retain()
    - Vec::remove()
      - new error type: RemoveError
    - Vec::insert_within_capacity
      - new error type: InsertError
  - simplify Vec::push() using Vec::spare_capacity_mut()
  - split Vec::set_len() into Vec::inc_len() and Vec::dec_len()
    - add type invariant Vec::len() <= Vec::capacity
    - simplify Vec::truncate() using Vec::dec_len()

13 May 2025: [PULL REQUEST] Intel IOMMU updates for v6.16 [+ + +]
Hi Joerg,

 
12 May 2025: soc: ti: Driver updates for v6.16 [+ + +]
Hi,

This PR has a couple of minor checkpatch warnings on 75 characters,
which I have opted to ignore due to breaking URL or warning message.


TI SoC driver updates for v6.16

- ti_sci: Bug fix in CPU latency conversion from us to ms for TISCI protocol
- k3-socinfo: Add JTAG ID for AM62LX
- Code cleanups: wkup_m3_ipc: Use dev_err_probe, k3-ringacc: use
  device_match_of_probe and knav_qmss_queue: drop unnecessary NULL check

12 May 2025: arm64: dts: ti: K3 devicetree updates for v6.16 [+ + +]
Hi,

This PR has the usual 75 char warnings around pinctrl usage and couple
of other places which I have chosen to ignore in favor of readability,
couple of places where regex related eeprom compatible lookup failed
(but dtbs_check passes).

More importantly, J721S2 GPU commits are based off drm-next tree
commit 2c01d9099859 which has been in the queue for a few weeks
now - so this warns for commit 2c01d9099859 not being present and
compatibles img,img-axe-1-16m, img,img-bxs-4-64, ti,j721s2-gpu,
img,img-rogue not being present. I chose to pick them up considering
the benefit our community has with the driver support now being
enabled in upstream.

This PR also has fixes that finally makes the ti dts tree almost clear
of all dtbs_check warnings (pending one fixup in the serdes binding
which is pending to be picked up).

Please let me know if there are concerns, else:

TI K3 device tree updates for v6.16

Generic Fixups/Cleanups:
* am62*: emmc - drop disable-wp, Add bootphase tags to support MMC boot

SoC Specific features and Fixes:
AM62Ax:
* C7x and R5F support added
* Bug fix for emmc clock to point to default
* CPUFreq thermal throttling on thermal alert

AM62P5:
* Add RNG Node (common to J722s)
* Bug fix for emmc clock to point to default (common to J722S)

AM625:
* Wakeup R5 node
* Bug fix for emmc clock to point to default
* PRUSS-M support
* New GPU bindings

AM64:
* Switch to 64-bit address space for PCIe0
* Add PCIe control nodes for main_conf region
* Reserve timer nodes used by MCU F/w.

AM65:
* MMC: Add missing delay timing values for SDR and legacy modes
* Add compatible for AM65x syscon and PCIe control properties
  (dtbs_check fixes)

J7200:
* PCIe control node to scm_conf, switch to 64-bit address space for PCIe1.

J721E:
* PCIe control node to scm_conf, switch to 64-bit address space for PCIe0,1.

J721S2:
* GPU node for Imagination Tech Rouge BXS GPU.
* PCIe control node to scm_conf, switch to 64-bit address space for PCIe1.

J722s/AM67A:
* Switch serdes status to be enabled by board file than at SoC level.
* Switch to 64-bit address space for PCIe0.

J784S4/J742S2/AM69:
* Add ASPCIE0 and enable output for PCIe1
* Fix length of serdes_ln_ctrl.
* Switch to 64-bit address space for PCIe0,1.

Board Specific:
AM62Ax:
* SK: co-processors C7x, R5, PWM support added
* phycore-som: co-processors C7x, R5

AM62P5:
* Add Toradex Verdin AM62P boards with Dahlia, Ivy, Mallow and Yavia suppor=
t.
* SK: Add remote processor support, PWM

AM625:
* Add BeagleBoard.org PocketBeagle-2 support
* phycore-som: Enable R5F support
* Verdin: Add eeprom compatible fallback
* SK: Enable PWM, voltage supplies, clock, i2cmux rename for camera overlays
  (dtbs_check fixes)
* BeaglePlay: Add voltage supplies for camera overlays (dtbs_check fixes)
* phyboard-lyra: Add cooling maps for fan
* emmc bug fixes: add non-removable flag for eMMC.

AM65:
* EVM: Add missing power supply description ofr Rocktech panel
  (dtbs_check fixes)

J721E:
* EVM: Enable OSPI1
* EVM/SK: Dt nodes description for mandatory power suplpies for panel and
  sensors (dtbs_check fixes)

J721S2/AM68:
* Add phyBOARD-Izar-AM68x
* am68-SK: Fix regulator hierarchy

J722s/AM67A:
* EVM: Add mux controls for CSI2, power regulator nodes and add overlays for
  quad IMX219 and TEVI OV5640.
* BeagleY-AI: Add bootph for main_gpio1

J784S4/J742S2/AM69:
* usxgmii expansion board: Drop un-necessary pinctrl-names
* evm: Add overlay for USB0 Type-A option

 
9 May 2025: AMD-TEE updates for 6.16 [+ + +]

Thanks,
Jens

AMD-TEE driver updates for v6.16

- Sort header includes
- Use pr_fmt

9 May 2025: TEE updates for 6.16 [+ + +]

Thanks,
Jens

Small TEE updates for v6.16

- Remove an unnecessary NULL check before release_firmware() in the
  OP-TEE driver
- Prevent a size wrap in the TEE subsystem. The wrap would have been caught
  later in the code so no security consequences.

 
8 May 2025: memory: drivers for v6.16 [+ + +]
Hi Arnd,

Rest of memory controller drivers.  Note: this pull *does not* contain previous
Renesas memctrl drivers, so please pull *both*.

Best regards,
Krzysztof


Memory controller drivers for v6.16

1. Mediatek: Add support for MT6893 MTK SMI.
2. STM32: Add new driver for STM32 Octo Memory Manager (OMM), which
   manages muxing between two OSPI busses.
3. Several cleanups and minor improvements (OMAP GPMC, Kconfig entries,
   BT1 L2).

8 May 2025: memory: drivers: renesas for v6.16 (for SPI and arm-soc) [+ + +]
Hi Mark,

Feel free to pull stable tag with Renesas PRC IF memory controller driver
changes exposing interface for the SPI driver:

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


Hi Arnd,


Best regards,
Krzysztof


Renesas memory controller drivers for v6.16

Improvements and new device support for the Renesas RPC IF memory
controller driver:
1. Minor cleanup and improvements.
2. Refactor the driver to accommodate for newly added Renesas RZ/G3E support:
   - Acquire two resets instead of only one,
   - Add RZ/G3E xSPI support with different register layout and its own,
     new interface for Renesas SPI.

 
7 May 2025: clk: thead: Updates for v6.16 [+ + +]
T-HEAD clock changes for v6.16

Add clock support for the Video Output (VO) subsystem in the T-HEAD
TH1520 SoC. This includes the device tree bindings for the VO clock
controller as well as extending the TH1520 clk driver to provide
clock functionality for the VO subsystem.

Signed-off-by: Drew Fustini <[email protected]>

7 May 2025: Apple SoC device tree updates for v6.16 [+ + +]
Hi Arnd,

Here are our device tree updates for 6.16, details are in the signed tag.
As usual, these have been part of -next for a while already.


Thanks,


Sven


Apple SoC Device Tree updates for 6.16:

- A-series SoCs: CPU cache information has been added to device trees
- M-series SoCs: SPMI controller and SPMI NVMEM nodes have been added

7 May 2025: clk: imx: Updates for v6.16 [+ + +]
i.MX clock changes for 6.16

- Add video PLL clocks to both i.MX8MM and i.MX8MP
  while dropping the numeral suffix.
- Add imx_anatop_get_clk_hw helper
- Add anatop clock providers for i.MX8M[MNP]
- Drop ccm_ prefix from base in i.MX8MP clock provider
- Document bindings for PLLs in imx8m-clock schema

7 May 2025: Rust pin-init for v6.16 [+ + +]
Hi Miguel,

Here is the first pin-init pull request! It contains more changes than I
expected the first PR to have, but the new CI discovered a few smaller
issues and I also got a contribution.

All commits have been in linux-next for a few days. The earlier commits
have been in linux-next for a few weeks.

No conflicts expected.


---
Cheers,
Benno

pin-init changes for v6.16

Added:

- 'Wrapper<T>' trait for creating pin-initializers for wrapper structs
  with a structurally pinned value such as 'UnsafeCell<T>' or
  'MaybeUninit<T>'.

- 'MaybeZeroable' derive macro to try to derive 'Zeroable', but not
  error if not all fields implement it. This is needed to derive
  'Zeroable' for all bindgen-generated structs.

- 'unsafe fn cast_[pin_]init()' functions to unsafely change the
  initialized type of an initializer. These are utilized by the
  'Wrapper<T>' implementations.

Changed:

- Added support for visibility in 'Zeroable' derive macro.

- Added support for 'union's in 'Zeroable' derive macro.

Upstream dev news:

- The CI has been streamlined & some bugs with it have been fixed. I
  also added new workflows to check if the user-space version and the
  one in the kernel tree have diverged.

- I also started to use the issues [1] tab to keep track of any problems
  or unexpected/unwanted things. This should help folks report and
  diagnose issues w.r.t. 'pin-init' better.

[1]: https://github.com/rust-for-linux/pin-init/issues

 
06 May 2025: Rust xarray for v6.16 [+ + +]
Hi Miguel,

from rust.

Rust xarray API for v6.16

Introduce Rust support for the `xarray` data structure:

 - Add a rust abstraction for the `xarray` data structure. This abstraction
   allows rust code to leverage the `xarray` to store types that implement
   `ForeignOwnable`. This support is a dependency for memory backing feature of
   the rust null block driver, which is waiting to be merged.

 - Set up an entry in MAINTAINERS for the xarray rust support. Patches will go
   to the new rust xarray tree and then via the rust subsystem tree for now.

`kernel` crate:

 - Allow `ForeignOwnable` to carry information about the pointed-to type. This
   helps asserting alignment requirements for the pointer passed to the foreign
   language.

 
5 May 2025: [PATCH 0/5] rust: Task & schedule related changes for v6.16 [+ + +]
Hi Ingo & Peter,

Here are the Rust changes related to task and schedule, I figure the
best route would be via tip/sched/core hence I send this pull request.
Let me know if you want to do this differently.

Same as lockdep changes, I send this pull request in the format of
patchset, but here are also the tag and pull-request message.

Regards,
Boqun

Rust task & schedule changes for v6.16:

- 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.

5 May 2025: [PATCH 0/3] LOCKDEP changes for v6.16 [+ + +]
Hi Ingo & Peter,

changes in patchset, but I also created a tag and the pull-request
message in case you want to directly pull. Thanks!

Regards,
Boqun

Lockdep changes for v6.16:

- Move hlock_equal() only under CONFIG_LOCKDEP_SMALL=y
- Prevent abuse of lockdep subclass in __lock_acquire()
- Add # of dynamic keys stat to /proc/lockdep_stats

 
1 May 2025: samsung: drivers for v6.16 [+ + +]
Hi Lee,
That's the stable tag for you to base MFD patches on top.


Hi Arnd,
tree.

Best regards,
Krzysztof


Samsung SoC drivers for v6.16

Several improvements to Exynos ACPM (Alive Clock and Power Manager)
driver:
1. Handle communication timeous better.
2. Avoid sleeping, so users (PMIC) can still transfer during system
   shutdown.
3. Fix reading longer messages from them firmware.
4. Deferred probe improvements.
5. Model the user of ACPM - PMIC - a as child device and export
   devm_acpm_get_by_node() for such use case.

 
28 Apr 2025: Generic entry for ARM for v6.16 [+ + +]
Hi Russell,

please consider pulling the following git branch for ARM generic entry,
for v6.16 see below.

This branch is identical to the v6 patch series:
https://lore.kernel.org/linux-arm-kernel/[email protected]/

It's possible to squash patches, even all of them into one
big all-or-nothing patch, given the not very gradual nature generic
entry conversion seems to have.

Main upsides and downsides are in the signed tag.

This series contains the ACKs from tglx and paulmck.

What's new apart from rebasing is the two following remasks in the
signed tag:

- Makes it possible to move ahead with ARCH_WANTS_NO_INSTR.

- Good base for CONFIG_ARCH_HAS_RESCHED_LAZY which is a good
  base for CONFIG_PREEMPT_RT.

I think Arnd may be working on this and this could be a good starting
point for PREEMPT_RT.

Yours,
Linus Walleij


Main upsides:

- Using the same common entry as used by x86_64, RISCV, S390
  and Loongarch, probably soon also ARM64.

- Moves ARM away from the obsoleted context tracker entry points
  user_enter_callable() and user_exit_callable() are now only used
  by ARM, CSKY and Xtensa.

- Solves a few lockdep warnings in the process.

- Converts a bit of assembly into C.

- Makes it possible to move ahead with ARCH_WANTS_NO_INSTR.

- Good base for CONFIG_ARCH_HAS_RESCHED_LAZY which is a good
  base for CONFIG_PREEMPT_RT.

Main downside:

- Slightly increased system call overhead, around 6% in
  measurements.

28 Apr 2025: gpio: immutable tag for the driver core for v6.16-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>

Here is the tag containing the driver core dependencies pulled into the
GPIO tree to enable picking up the final commit from Andy's series[0].

Bart

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

Immutable tag for the driver core tree to pull from

devres: Move devm_*_action*() APIs to devres.h
devres: Add devm_is_action_added() helper

 
9 Apr 2025: Immutable tag between the GPIO and regulator trees for v6.16-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>

Hi Mark,

apply the second patch[1] in the series using gpiod_is_equal() in regulator
core.

Bartosz

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

Immutable tag for the regulator tree to pull from

gpio: provide gpiod_is_equal()