Latest Linux kernel releases

  22.03 6.13.8, 6.12.20, 6.6.84
  13.03 6.1.131, 5.15.179, 5.10.235, 5.4.291

Significant pull requests for mainline kernel

 
23 Mar 2025: CRC updates for 6.15 [+ + +]
Another set of improvements to the kernel's CRC (cyclic redundancy
check) code:

- Rework the CRC64 library functions to be directly optimized, like what
  I did last cycle for the CRC32 and CRC-T10DIF library functions.

- Rewrite the x86 PCLMULQDQ-optimized CRC code, and add VPCLMULQDQ
  support and acceleration for crc64_be and crc64_nvme.

- Rewrite the riscv Zbc-optimized CRC code, and add acceleration for
  crc_t10dif, crc64_be, and crc64_nvme.

- Remove crc_t10dif and crc64_rocksoft from the crypto API, since they
  are no longer needed there.

- Rename crc64_rocksoft to crc64_nvme, as the old name was incorrect.

- Add kunit test cases for crc64_nvme and crc7.

- Eliminate redundant functions for calculating the Castagnoli CRC32,
  settling on just crc32c().

- Remove unnecessary prompts from some of the CRC kconfig options.

- Further optimize the x86 crc32c code.

23 Mar 2025: fsverity updates for 6.15 [+ + +]
A fix for an issue where CONFIG_FS_VERITY could be enabled without some
of its dependencies, and a small documentation update.

23 Mar 2025: fscrypt updates for 6.15 [+ + +]
A fix for an issue where CONFIG_FS_ENCRYPTION could be enabled without
some of its dependencies, and a small documentation update.

23 Mar 2025: timers/vdso for v6.15-rc1 [+ + +]
please pull the latest timers/vdso branch from:

-03-23

inking

Updates for the VDSO infrastructure:

  - Consolidate the VDSO storage=20
 =20
    The VDSO data storage and data layout has been largely architecture
    specific for historical reasons. That increases the maintenance effort
    and causes inconsistencies over and over.

    There is no real technical reason for architecture specific layouts and
    implementations. The architecture specific details can easily be
    integrated into a generic layout, which also reduces the amount of
    duplicated code for managing the mappings.

    Convert all architectures over to a unified layout and common mapping
    infrastructure. This splits the VDSO data layout into subsystem
    specific blocks, timekeeping, random and architecture parts, which
    provides a better structure and allows to improve and update the
    functionalities without conflict and interaction.

  - Rework the timekeeping data storage

    The current implementation is designed for exposing system timekeeping
    accessors, which was good enough at the time when it was designed.

    PTP and Time Sensitive Networking (TSN) change that as there are
    requirements to expose independent PTP clocks, which are not related to
    system timekeeping.

    Replace the monolithic data storage by a structured layout, which
    allows to add support for independent PTP clocks on top while reusing
    both the data structures and the time accessor implementations.

Note: There is a trivial conflict vs. the x86/core pull request, which
      changes a VDSO random implementation detail.

Thanks,

tglx

23 Mar 2025: irq/drivers for v6.15-rc1 [+ + +]
please pull the latest irq/drivers branch from:

-03-23



Updates for interrupt chip drivers:

  - Support for hard indices on RISC-V. The hart index identifies a hart
    (core) within a specific interrupt domain in RISC-V's Priviledged
    Architecture.

  - Rework of the RISC-V MSI driver.

    This moves the driver over to the generic MSI library and solves the
    affinity problem of unmaskable PCI/MSI controllers. Unmaskable PCI/MSI
    controllers are prone to lose interrupts when the MSI message is
    updated to change the affinity because the message write consists of
    three 32-bit subsequent writes, which update address and data. As these
    writes are non-atomic versus the device raising an interrupt, the
    device can observe a half written update and issue an interrupt on the
    wrong vector. This is mitiated by a carefully orchestrated step by step
    update and the observation of an eventually pending interrupt on the
    CPU which issues the update. The algorithm follows the well established
    method of the X86 MSI driver.

  - A new driver for the RISC-V Sophgo SG2042 MSI controller

  - Overhaul of the Renesas RZQ2L driver.

    Simplification of the probe function by using devm_*() mechanisms,
    which avoid the endless list of error prone gotos in the failure paths.

  - Expand the Renesas RZV2H driver to support RZ/G3E SoCs

  - A workaround for Rockchip 3568002 erratum in the GIC-V3 driver to
    ensure that the addressing is limited to the lower 32-bit of the
    physical address space.

  - Add support for the Allwinner AS23 NMI controller

  - Expand the IMX irqsteer driver to handle up to 960 input interrupts

  - The usual small updates, cleanups and device tree changes.


Thanks,

tglx

23 Mar 2025: timers/core for v6.15-rc1 [+ + +]
please pull the latest timers/core branch from:

-03-23

ith other clockids


Updates for the core time/timer subsystem:

  - Fix a memory ordering issue in posix-timers

    Posix-timer lookup is lockless and reevaluates the timer validity under
    the timer lock, but the update which validates the timer is not
    protected by the timer lock. That allows the store to be reordered
    against the initialization stores, so that the lookup side can observe
    a partially initialized timer. That's mostly a theoretical problem, but
    incorrect nevertheless.

  - Fix a long standing inconsistency of the coarse time getters

    The coarse time getters read the base time of the current update cycle
    without reading the actual hardware clock. NTP frequency adjustment can
    set the base time backwards. The fine grained interfaces compensate
    this by reading the clock and applying the new conversion factor, but
    the coarse grained time getters use the base time directly. That allows
    the user to observe time going backwards.

    Cure it by always forwarding base time, when NTP changes the frequency
    with an immediate step.

  - Rework of posix-timer hashing

    The posix-timer hash is not scalable and due to the CRIU timer restore
    mechanism prone to massive contention on the global hash bucket lock.

    Replace the global hash lock with a fine grained per bucket locking
    scheme to address that.

  - Rework the proc/$PID/timers interface.

    /proc/$PID/timers is provided for CRIU to be able to restore a
    timer. The printout happens with sighand lock held and interrupts
    disabled. That's not required as this can be done with RCU protection
    as well.

  - Provide a sane mechanism for CRIU to restore a timer ID

    CRIU restores timers by creating and deleting them until the kernel
    internal per process ID counter reached the requested ID. That's
    horribly slow for sparse timer IDs.

    Provide a prctl() which allows CRIU to restore a timer with a given
    ID. When enabled the ID pointer is used as input pointer to read the
    requested ID from user space. When disabled, the normal allocation
    scheme (next ID) is active as before. This is backwards compatible for
    both kernel and user space.

  - Make hrtimer_update_function() less expensive.

    The sanity checks are valuable, but expensive for high frequency usage
    in io/uring. Make the debug checks conditional and enable them only
    when lockdep is enabled.

  - Small updates, cleanups and improvements

Thanks,

tglx

23 Mar 2025: locking/futex for v6.15-rc1 [+ + +]
please pull the latest locking/futex branch from:

25-03-23



A single update for futexes:

  Use a precomputed mask for the hash computation instead of computing the
  mask from the size on every invocation.


Thanks,

tglx

23 Mar 2025: irq/msi for v6.15-rc1 [+ + +]
please pull the latest irq/msi branch from:

23



Updates for MSI interrupts

  - Switch the MSI descriptor locking to guards

  - Replace the broken PCI/TPH implementation, which lacks any form of
    serialization against concurrent modifications with a properly
    serialized mechanism in the PCI/MSI core code.

  - Replace the MSI descriptor abuse in the SCSI/UFS Qualcom driver with
    dedicated driver internal storage.

Thanks,

tglx

23 Mar 2025: irq/core for v6.15-rc1 [+ + +]
please pull the latest irq/core branch from:

-23



A small set of core changes for the interrupt subsystem:

  - Expose the MSI message in the existing debug filesystem dump. That's
    useful for validation and debugging.

  - Small cleanups

Thanks,

tglx

 
24 Mar 2025: erofs updates for 6.15-rc1 [+ + +]
Could you consider this pull request for 6.15-rc1?

In this cycle, EROFS 48-bit block addressing is available to support
massive datasets for model training and other large data archive use
cases.

In addition, byte-oriented encoded extents have been supported to
reduce metadata sizes when using large configurations as well as to
improve Zstd compression speed.

There are some bugfixes and cleanups as usual.  All commits have been
in -next for a while and no potential merge conflicts is observed.

Thanks,
Gao Xiang

Changes since last update:

 - Support 48-bit block addressing for large images;

 - Introduce encoded extents to reduce metadata on larger pclusters;

 - Enable unaligned compressed data to improve Zstd compression speed;

 - Allow 16-byte volume names again;

 - Minor cleanups.

 
23 Mar 2025: xen: branch for v6.15-rc1 [+ + +]
Please git pull the following tag:


xen: branch for v6.15-rc1

It contains:

- A cleanup patch removing an used function.

- A patch adding support for a XenServer specific virtual PCI device.

- A patch fixing the handling of a sparse Xen hypervisor symbol table.

- A patch avoiding warnings when building the kernel with gcc 15.

- A series fixing usage of devices behind a VMD bridge when running as
  a Xen PV dom0.


Thanks.

Juergen

23 Mar 2025: timer drivers changes for v6.15-rc1 [+ + +]
Hi Thomas,

please consider the following changes since commit 
7eb172143d5508b4da468ed59ee857c6e5e01da6:

   Linux 6.14-rc5 (2025-03-02 11:48:20 -0800)

are available in the Git repository at:

   git://git.linaro.org/people/daniel.lezcano/linux.git 
tags/timers-v6.15-rc1

for you to fetch changes up to 0f920690a82cc99ae08cab08bee2e5685b62fd04:

   dt-bindings: timer: Add SiFive CLINT2 (2025-03-23 10:55:43 +0100)

- Fixed indentation and style in DTS example in the DT bindings
   (Krzysztof Kozlowski)

- Added the samsung,exynos990-mct compatible binding (Igor Belwon)

- Added the samsung,exynos2200-mct-peris compatible binding (Ivaylo
   Ivanov)

- Fixed a comment spelling error in the exynos-mct driver (Anindya
   Sundar Gayen)

- Added the support for suspend / resume in the stm32-lptimer driver
   (Fabrice Gasnier)

- Fixed use of wakeup capable instead of init wakeup in the
   stm32-lptimer driver (Alexandre Torgue)

- Add SiFive CLINT2 DT bindings (Nick Hu)

 
22 Mar 2025: sched_ext: Changes for v6.15 [+ + +]
sched_ext: Changes for v6.15

- Add mechanism to count and report internal events. This significantly
  improves visibility on subtle corner conditions.

- The default idle CPU selection logic is revamped and improved in multiple
  ways including being made topology aware.

- sched_ext was disabling ttwu_queue for simplicity, which can be costly
  when hardware topology is more complex. Implement
  SCX_OPS_ALLOWED_QUEUED_WAKEUP so that BPF schedulers can selectively
  enable ttwu_queue.

- tools/sched_ext updates to improve compatibility among others.

- Other misc updates and fixes.

- sched_ext/for-6.14-fixes were pulled a few times to receive prerequisite
  fixes and resolve conflicts.

22 Mar 2025: RCU changes for v6.15 [+ + +]
When the merge window opens, please pull the RCU update:

RCU pull request for v6.15

This pull request contains the following branches:

docs.2025.02.04a:
 - Add broken-timing possibility to stallwarn.rst.
 - Improve discussion of this_cpu_ptr(), add raw_cpu_ptr().
 - Document self-propagating callbacks.
 - Point call_srcu() to call_rcu() for detailed memory ordering.
 - Add CONFIG_RCU_LAZY delays to call_rcu() kernel-doc header.
 - Clarify RCU_LAZY and RCU_LAZY_DEFAULT_OFF help text.
 - Remove references to old grace-period-wait primitives.

srcu.2025.02.05a:
 - Introduce srcu_read_{un,}lock_fast(), which is similar to
   srcu_read_{un,}lock_lite(): avoid smp_mb()s in lock and unlock at the
   cost of calling synchronize_rcu() in synchronize_srcu(). Moreover, by
   returning the percpu offset of the counter at srcu_read_lock_fast()
   time, srcu_read_unlock_fast() can save extra pointer dereferencing,
   which makes it faster than srcu_read_{un,}lock_lite().
   srcu_read_{un,}lock_fast() are intended to replace
   rcu_read_{un,}lock_trace() if possible.

torture.2025.02.05a:
 - Add get_torture_init_jiffies() to return the start time of the test.
 - Add a test_boost_holdoff module parameter to allow delaying boosting
   tests when building rcutorture as built-in.
 - Add grace period sequence number logging at the beginning and end of
   failure/close-call results.
 - Switch to hexadecimal for the expedited grace period sequence number
   in the rcu_exp_grace_period trace point.
 - Make cur_ops->format_gp_seqs take buffer length.
 - Move RCU_TORTURE_TEST_{CHK_RDR_STATE,LOG_CPU} to bool.
 - Complain when invalid SRCU reader_flavor is specified.
 - Add FORCE_NEED_SRCU_NMI_SAFE Kconfig for testing, which forces SRCU
   uses atomics even when percpu ops are NMI safe, and use the Kconfig
   for SRCU lockdep testing.

misc.2025.03.04a:
 - Split rcu_report_exp_cpu_mult() mask parameter and use for tracing.
 - Remove READ_ONCE() for rdp->gpwrap access in __note_gp_changes().
 - Fix get_state_synchronize_rcu_full() GP-start detection.
 - Move RCU Tasks self-tests to core_initcall().
 - Print segment lengths in show_rcu_nocb_gp_state().
 - Make RCU watch ct_kernel_exit_state() warning.
 - Flush console log from kernel_power_off().
 - rcutorture: Allow a negative value for nfakewriters.
 - rcu: Update TREE05.boot to test normal synchronize_rcu().
 - rcu: Use _full() API to debug synchronize_rcu().

lazypreempt.2025.03.04a: Make RCU handle PREEMPT_LAZY better:
 - Fix header guard for rcu_all_qs().
 - rcu: Rename PREEMPT_AUTO to PREEMPT_LAZY.
 - Update __cond_resched comment about RCU quiescent states.
 - Handle unstable rdp in rcu_read_unlock_strict().
 - Handle quiescent states for PREEMPT_RCU=n, PREEMPT_COUNT=y.
 - osnoise: Provide quiescent states.
 - Adjust rcutorture with possible PREEMPT_RCU=n && PREEMPT_COUNT=y
   combination.
 - Limit PREEMPT_RCU configurations.
 - Make rcutorture senario TREE07 and senario TREE10 use PREEMPT_LAZY=y.

22 Mar 2025: i2c-host for v6.15 [+ + +]
Hi Wolfram,

Here we go with the pull request for the merge window.

It's not a huge batch in terms of patch count, but a few pieces
of long standing work finally reached the finish line.

Some patches are refreshed from the past, something I plan to do
more often going forward.

One new driver was added: Spacemit K1.

Andy has also been very active, contributing the new
i2c_10bit_addr_*_from_msg() helper, which is now being adopted
across several drivers.

I don't think I've missed anything from the recent submissions,
and I'm happy to have caught up with the pending work. So I
don't expect the need for a part 2 pull request next week.

Thanks, and I wish you a great weekend!
Andi

i2c-host updates for v6.15

Refactoring and cleanups
 - octeon, cadence, i801, pasemi, mlxbf, bcm-iproc: general
   refactorings
 - octeon: remove 10-bit address support

Improvements
 - amd-asf: improved error handling
 - designware: use guard(mutex)
 - amd-asf, designware: update naming to follow latest specs
 - cadence: fix cleanup path in probe
 - i801: use MMIO and I/O mapping helpers to access registers
 - pxa: handle error after clk_prepare_enable

New features
 - added i2c_10bit_addr_*_from_msg() and updated multiple drivers
 - omap: added multiplexer state handling
 - qcom-geni: update frequency configuration
 - qup: introduce DMA usage policy

New hardware support
 - exynos: add support for Samsung exynos7870
 - k1: add support for spacemit k1 (new driver)
 - imx: add support for i.mx94 lpi2c
 - rk3x: add support for rk3562

Multiplexers
 - ltc4306, reg: fix assignment in platform_driver structure

22 Mar 2025: x86/sev updates for v6.15 [+ + +]



x86/sev updates for v6.15:

 - Improve sme_enable() PIC build robustness (Kevin Loughlin)
 - Simplify vc_handle_msr() a bit (Peng Hao)

 Thanks,

Ingo

22 Mar 2025: x86/platform updates for v6.15 [+ + +]



Two small cleanups in the x86 platform support code.

 Thanks,

Ingo

22 Mar 2025: x86/fpu updates for v6.15 [+ + +]




x86/fpu updates for v6.15:

 - Improve crypto performance by making kernel-mode FPU reliably usable
   in softirqs ((Eric Biggers)

 - Fully optimize out WARN_ON_FPU() (Eric Biggers)

 - Initial steps to support Support Intel APX (Advanced Performance Extensions)
   (Chang S. Bae)

 - Fix KASAN for arch_dup_task_struct() (Benjamin Berg)

 - Refine and simplify the FPU magic number check during signal return
   (Chang S. Bae)

 - Fix inconsistencies in guest FPU xfeatures (Chao Gao, Stanislav Spassov)

 - selftests/x86/xstate: Introduce common code for testing extended states
   (Chang S. Bae)

 - Misc fixes and cleanups (Borislav Petkov, Colin Ian King, Uros Bizjak)

 Thanks,

Ingo

22 Mar 2025: x86/build updates for v6.15 [+ + +]



x86/build updates for v6.15:

 - Drop CRC-32 checksum and the build tool that generates it
   (Ard Biesheuvel)

 - Fix broken copy command in genimage.sh when making isoimage
   (Nir Lichtman)

 Thanks,

Ingo

22 Mar 2025: x86/boot updates for v6.15 [+ + +]



Updates to the x86 boot code for the v6.15 cycle:

  - Memblock setup and other early boot code cleanups (Mike Rapoport)
  - Export e820_table_kexec[] to sysfs (Dave Young)
  - Baby steps of adding relocate_kernel() debugging support (David Woodhouse)
  - Replace open-coded parity calculation with parity8() (Kuan-Wei Chiu)
  - Move the LA57 trampoline to separate source file (Ard Biesheuvel)
  - Misc micro-optimizations (Uros Bizjak)
  - Drop obsolete E820_TYPE_RESERVED_KERN and related code (Mike Rapoport)

 Thanks,

Ingo

22 Mar 2025: x86 core updates for v6.15 [+ + +]



[ Merge note: this pull request depends on you having merged
              two locking commits in the locking tree,
      part of the locking-core-2025-03-22 pull request. ]

x86 CPU features support:
  - Generate the <asm/cpufeaturemasks.h> header based on build config
    (H. Peter Anvin, Xin Li)
  - x86 CPUID parsing updates and fixes (Ahmed S. Darwish)
  - Introduce the 'setcpuid=' boot parameter (Brendan Jackman)
  - Enable modifying CPU bug flags with '{clear,set}puid='
    (Brendan Jackman)
  - Utilize CPU-type for CPU matching (Pawan Gupta)
  - Warn about unmet CPU feature dependencies (Sohil Mehta)
  - Prepare for new Intel Family numbers (Sohil Mehta)

Percpu code:
  - Standardize & reorganize the x86 percpu layout and
    related cleanups (Brian Gerst)
  - Convert the stackprotector canary to a regular percpu
    variable (Brian Gerst)
  - Add a percpu subsection for cache hot data (Brian Gerst)
  - Unify __pcpu_op{1,2}_N() macros to __pcpu_op_N() (Uros Bizjak)
  - Construct __percpu_seg_override from __percpu_seg (Uros Bizjak)

MM:
  - Add support for broadcast TLB invalidation using AMD's INVLPGB instruction
    (Rik van Riel)
  - Rework ROX cache to avoid writable copy (Mike Rapoport)
  - PAT: restore large ROX pages after fragmentation
    (Kirill A. Shutemov, Mike Rapoport)
  - Make memremap(MEMREMAP_WB) map memory as encrypted by default
    (Kirill A. Shutemov)
  - Robustify page table initialization (Kirill A. Shutemov)
  - Fix flush_tlb_range() when used for zapping normal PMDs (Jann Horn)
  - Clear _PAGE_DIRTY for kernel mappings when we clear _PAGE_RW
    (Matthew Wilcox)

KASLR:
  - x86/kaslr: Reduce KASLR entropy on most x86 systems,
    to support PCI BAR space beyond the 10TiB region
    (CONFIG_PCI_P2PDMA=y) (Balbir Singh)

CPU bugs:
  - Implement FineIBT-BHI mitigation (Peter Zijlstra)
  - speculation: Simplify and make CALL_NOSPEC consistent (Pawan Gupta)
  - speculation: Add a conditional CS prefix to CALL_NOSPEC (Pawan Gupta)
  - RFDS: Exclude P-only parts from the RFDS affected list (Pawan Gupta)

System calls:
  - Break up entry/common.c (Brian Gerst)
  - Move sysctls into arch/x86 (Joel Granados)

Intel LAM support updates: (Maciej Wieczor-Retman)
  - selftests/lam: Move cpu_has_la57() to use cpuinfo flag
  - selftests/lam: Skip test if LAM is disabled
  - selftests/lam: Test get_user() LAM pointer handling

AMD SMN access updates:
  - Add SMN offsets to exclusive region access (Mario Limonciello)
  - Add support for debugfs access to SMN registers (Mario Limonciello)
  - Have HSMP use SMN through AMD_NODE (Yazen Ghannam)

Power management updates: (Patryk Wlazlyn)
  - Allow calling mwait_play_dead with an arbitrary hint
  - ACPI/processor_idle: Add FFH state handling
  - intel_idle: Provide the default enter_dead() handler
  - Eliminate mwait_play_dead_cpuid_hint()

Bootup:

Build system:
  - Raise the minimum GCC version to 8.1 (Brian Gerst)
  - Raise the minimum LLVM version to 15.0.0
    (Nathan Chancellor)

Kconfig: (Arnd Bergmann)
  - Add cmpxchg8b support back to Geode CPUs
  - Drop 32-bit "bigsmp" machine support
  - Rework CONFIG_GENERIC_CPU compiler flags
  - Drop configuration options for early 64-bit CPUs
  - Remove CONFIG_HIGHMEM64G support
  - Drop CONFIG_SWIOTLB for PAE
  - Drop support for CONFIG_HIGHPTE
  - Document CONFIG_X86_INTEL_MID as 64-bit-only
  - Remove old STA2x11 support
  - Only allow CONFIG_EISA for 32-bit

Headers:
  - Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI and non-UAPI headers
    (Thomas Huth)

Assembly code & machine code patching:
  - x86/alternatives: Simplify alternative_call() interface (Josh Poimboeuf)
  - x86/alternatives: Simplify callthunk patching (Peter Zijlstra)
  - KVM: VMX: Use named operands in inline asm (Josh Poimboeuf)
  - x86/hyperv: Use named operands in inline asm (Josh Poimboeuf)
  - x86/traps: Cleanup and robustify decode_bug() (Peter Zijlstra)
  - x86/kexec: Merge x86_32 and x86_64 code using macros from <asm/asm.h>
    (Uros Bizjak)
  - Use named operands in inline asm (Uros Bizjak)
  - Improve performance by using asm_inline() for atomic locking instructions
    (Uros Bizjak)

Earlyprintk:
  - Harden early_serial (Peter Zijlstra)

NMI handler:
  - Add an emergency handler in nmi_desc & use it in nmi_shootdown_cpus()
    (Waiman Long)

Miscellaneous fixes and cleanups:

  - by Ahmed S. Darwish, Andy Shevchenko, Ard Biesheuvel,
    Artem Bityutskiy, Borislav Petkov, Brendan Jackman, Brian Gerst,
    Dan Carpenter, Dr. David Alan Gilbert, H. Peter Anvin,
    Ingo Molnar, Josh Poimboeuf, Kevin Brodsky, Mike Rapoport,
    Lukas Bulwahn, Maciej Wieczor-Retman, Max Grobecker,
    Patryk Wlazlyn, Pawan Gupta, Peter Zijlstra,
    Philip Redkin, Qasim Ijaz, Rik van Riel, Thomas Gleixner,
    Thorsten Blum, Tom Lendacky, Tony Luck, Uros Bizjak,
    Vitaly Kuznetsov, Xin Li, liuye.

 Thanks,

Ingo

22 Mar 2025: Scheduler updates for v6.15 [+ + +]



Scheduler updates for v6.15:

[ Merge note, these two commits are identical:

   - f3fa0e40df17 ("sched/clock: Don't define sched_clock_irqtime as static key")
   - b9f2b29b9494 ("sched: Don't define sched_clock_irqtime as static key")

  The first one is a cherry-picked version of the second, and the first one
  is already upstream. ]

Core & fair scheduler changes:

  - Cancel the slice protection of the idle entity (Zihan Zhou)
  - Reduce the default slice to avoid tasks getting an extra tick
    (Zihan Zhou)
  - Force propagating min_slice of cfs_rq when {en,de}queue tasks
    (Tianchen Ding)
  - Refactor can_migrate_task() to elimate looping (I Hsin Cheng)
  - Add unlikey branch hints to several system calls (Colin Ian King)
  - Optimize current_clr_polling() on certain architectures (Yujun Dong)

Deadline scheduler: (Juri Lelli)

  - Remove redundant dl_clear_root_domain call
  - Move dl_rebuild_rd_accounting to cpuset.h

Uclamp:

  - Use the uclamp_is_used() helper instead of open-coding it (Xuewen Yan)
  - Optimize sched_uclamp_used static key enabling (Xuewen Yan)

Scheduler topology support: (Juri Lelli)

  - Ignore special tasks when rebuilding domains
  - Add wrappers for sched_domains_mutex
  - Generalize unique visiting of root domains
  - Rebuild root domain accounting after every update
  - Remove partition_and_rebuild_sched_domains
  - Stop exposing partition_sched_domains_locked

RSEQ: (Michael Jeanson)

  - Update kernel fields in lockstep with CONFIG_DEBUG_RSEQ=y
  - Fix segfault on registration when rseq_cs is non-zero
  - selftests: Add rseq syscall errors test
  - selftests: Ensure the rseq ABI TLS is actually 1024 bytes

Membarriers:

  - Fix redundant load of membarrier_state (Nysal Jan K.A.)

Scheduler debugging:

  - Introduce and use preempt_model_str() (Sebastian Andrzej Siewior)
  - Make CONFIG_SCHED_DEBUG unconditional (Ingo Molnar)

Fixes and cleanups:

  - Always save/restore x86 TSC sched_clock() on suspend/resume
   (Guilherme G. Piccoli)

  - Misc fixes and cleanups (Thorsten Blum, Juri Lelli,
    Sebastian Andrzej Siewior)

 Thanks,

Ingo

22 Mar 2025: Performance events updates for v6.15 [+ + +]



Performance events updates for v6.15:

Core:

  - Move perf_event sysctls into kernel/events/ (Joel Granados)
  - Use POLLHUP for pinned events in error (Namhyung Kim)
  - Avoid the read if the count is already updated (Peter Zijlstra)
  - Allow the EPOLLRDNORM flag for poll (Tao Chen)

  - locking/percpu-rwsem: Add guard support (Peter Zijlstra)
    [ NOTE: this got (mis-)merged into the perf tree due to related work. ]

perf_pmu_unregister() related improvements: (Peter Zijlstra)

  - Simplify the perf_event_alloc() error path
  - Simplify the perf_pmu_register() error path
  - Simplify perf_pmu_register()
  - Simplify perf_init_event()
  - Simplify perf_event_alloc()
  - Merge struct pmu::pmu_disable_count into struct perf_cpu_pmu_context::pmu_disable_count
  - Add this_cpc() helper
  - Introduce perf_free_addr_filters()
  - Robustify perf_event_free_bpf_prog()
  - Simplify the perf_mmap() control flow
  - Further simplify perf_mmap()
  - Remove retry loop from perf_mmap()
  - Lift event->mmap_mutex in perf_mmap()
  - Detach 'struct perf_cpu_pmu_context' and 'struct pmu' lifetimes
  - Fix perf_mmap() failure path

Uprobes:

  - Harden x86 uretprobe syscall trampoline check (Jiri Olsa)
  - Remove redundant spinlock in uprobe_deny_signal() (Liao Chang)
  - Remove the spinlock within handle_singlestep() (Liao Chang)

x86 Intel PMU enhancements:

  - Support PEBS counters snapshotting (Kan Liang)
  - Fix intel_pmu_read_event() (Kan Liang)
  - Extend per event callchain limit to branch stack (Kan Liang)
  - Fix system-wide LBR profiling (Kan Liang)
  - Allocate bts_ctx only if necessary (Li RongQing)
  - Apply static call for drain_pebs (Peter Zijlstra)

x86 AMD PMU enhancements: (Ravi Bangoria)

  - Remove pointless sample period check
  - Fix ->config to sample period calculation for OP PMU
  - Fix perf_ibs_op.cnt_mask for CurCnt
  - Don't allow freq mode event creation through ->config interface
  - Add PMU specific minimum period
  - Add ->check_period() callback
  - Ceil sample_period to min_period
  - Add support for OP Load Latency Filtering
  - Update DTLB/PageSize decode logic

Hardware breakpoints:

  - Return EOPNOTSUPP for unsupported breakpoint type (Saket Kumar Bhaskar)

Hardlockup detector improvements: (Li Huafei)

  - perf_event memory leak
  - Warn if watchdog_ev is leaked

Fixes and cleanups:

  - Misc fixes and cleanups (Andy Shevchenko, Kan Liang, Peter Zijlstra,
    Ravi Bangoria, Thorsten Blum, XieLudan)

 Thanks,

Ingo

22 Mar 2025: objtool changes for v6.15 [+ + +]



Objtool changes for v6.15:

 - The biggest change is the new option to automatically fail
   the build on objtool warnings: CONFIG_OBJTOOL_WERROR.

   While there are no currently known unfixed false positives
   left, such an expansion in the severity of objtool warnings
   inevitably creates a risk of build failures, so it's disabled by
   default and depends on !COMPILE_TEST, so it shouldn't be enabled
   on allyesconfig/allmodconfig builds and won't be forced on people
   who just accept build-time defaults in 'make oldconfig'.

   While the option is strongly recommended, only people who enable
   it explicitly should see it.

   (Josh Poimboeuf)

 - Disable branch profiling in noinstr code with a broad
   brush that includes all of arch/x86/ and kernel/sched/. (Josh Poimboeuf)

 - Create backup object files on objtool errors and print exact
   objtool arguments to make failure analysis easier (Josh Poimboeuf)

 - Improve noreturn handling (Josh Poimboeuf)

 - Improve rodata handling (Tiezhu Yang)

 - Support jump tables, switch tables and goto tables on LoongArch (Tiezhu Yang)

 - Misc cleanups and fixes (Josh Poimboeuf, David Engraf, Ingo Molnar)

 Thanks,

Ingo

22 Mar 2025: locking changes for v6.15 [+ + +]



Locking changes for v6.15:

  Locking primitives:

    - Micro-optimize percpu_{,try_}cmpxchg{64,128}_op() and {,try_}cmpxchg{64,128}
      on x86 (Uros Bizjak)

    - mutexes: extend debug checks in mutex_lock() (Yunhui Cui)

    - Misc cleanups (Uros Bizjak)

  Lockdep:

    - Fix might_fault() lockdep check of current->mm->mmap_lock (Peter Zijlstra)

    - Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
      (Sebastian Andrzej Siewior)

    - Disable KASAN instrumentation of lockdep.c (Waiman Long)

    - Add kasan_check_byte() check in lock_acquire() (Waiman Long)

    - Misc cleanups (Sebastian Andrzej Siewior)

  Rust runtime integration:

    - Use Pin for all LockClassKey usages (Mitchell Levy)
    - sync: Add accessor for the lock behind a given guard (Alice Ryhl)
    - sync: condvar: Add wait_interruptible_freezable() (Alice Ryhl)
    - sync: lock: Add an example for Guard:: Lock_ref() (Boqun Feng)

  Split-lock detection feature (x86):

    - Fix warning mode with disabled mitigation mode (Maksim Davydov)

  Locking events:

    - Add locking events for rtmutex slow paths (Waiman Long)
    - Add locking events for lockdep (Waiman Long)

 Thanks,

Ingo

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


stop-machine: Add a comment for rcu_momentary_eqs()

Changes
-------

* Add a comment for the call to rcu_momentary_eqs() from multi_cpu_stop()
  explaining that its purpose is to suppress false-positive RCU CPU
  stall warnings.

21 Mar 2025: nolibc changes for v6.15 [+ + +]
Once the v6.15 merge window opens, please pull the latest nolibc
changes from:


nolibc changes for 6.15

Changes
-------

* 32bit s390 support
* opendir() and friends
* openat() support
* sscanf() support
* various cleanups

21 Mar 2025: LKMM changes for v6.15 [+ + +]
When the v6.15 merge window opens, please pull this LKMM update from:


lkmm: Add more atomic operations, rework tags, and update documentation

Changes
-------

* Adds additional atomic operations (Puranjay Mohan)
* Makes better use of herd7 tags (Jonas Oberhauser)
* Updates documentation (Akira Yokosawa)

These changes require v7.58 of the herd7 and klitmus tools, up from v7.52.

21 Mar 2025: Documentation for 6.15 [+ + +]
It has been a reasonably busy cycle for docs...

- Significant changes throughout the tree to bring Python code up to
  current standards and raise the minimum Python required to 3.9.  Much of
  this is preparatory to replacing the ancient Perl scripts/kernel-doc
  horror with a slightly less horrifying Python implementation, expected
  for 6.16.

- Update the minimum Sphinx required to 3.4.3, allowing us to remove a
  bunch of older compatibility code.

- Rework and improve the generation of the ABI documentation.

  (All of the above done by Mauro)

- Lots of translation updates.  Alex Shi and Yanteng Si are taking on
  responsibility for the Chinese translations going forward; that work will
  still get to you via docs-next

- Try to standardize the format for indicating a developer's affiliation in
  commit tags.

- Clarify the TAB's role in CoC enforcement actions.

- Try to spell out the rules for when a commit tag can name another
  developer without their explicit permission.

Plus lots of other typo fixes and updates.

21 Mar 2025: First batch of KVM changes for Linux 6.15 [+ + +]
ARM:

* Nested virtualization support for VGICv3, giving the nested
hypervisor control of the VGIC hardware when running an L2 VM

* Removal of 'late' nested virtualization feature register masking,
  making the supported feature set directly visible to userspace

* Support for emulating FEAT_PMUv3 on Apple silicon, taking advantage
  of an IMPLEMENTATION DEFINED trap that covers all PMUv3 registers

* Paravirtual interface for discovering the set of CPU implementations
  where a VM may run, addressing a longstanding issue of guest CPU
  errata awareness in big-little systems and cross-implementation VM
  migration

* Userspace control of the registers responsible for identifying a
  particular CPU implementation (MIDR_EL1, REVIDR_EL1, AIDR_EL1),
  allowing VMs to be migrated cross-implementation

* pKVM updates, including support for tracking stage-2 page table
  allocations in the protected hypervisor in the 'SecPageTable' stat

* Fixes to vPMU, ensuring that userspace updates to the vPMU after
  KVM_RUN are reflected into the backing perf events

LoongArch:

* Remove unnecessary header include path

* Assume constant PGD during VM context switch

* Add perf events support for guest VM

RISC-V:

* Disable the kernel perf counter during configure

* KVM selftests improvements for PMU

* Fix warning at the time of KVM module removal

x86:

* Add support for aging of SPTEs without holding mmu_lock.  Not taking mmu_lock
  allows multiple aging actions to run in parallel, and more importantly avoids
  stalling vCPUs.  This includes an implementation of per-rmap-entry locking;
  aging the gfn is done with only a per-rmap single-bin spinlock taken, whereas
  locking an rmap for write requires taking both the per-rmap spinlock and
  the mmu_lock.

  Note that this decreases slightly the accuracy of accessed-page information,
  because changes to the SPTE outside aging might not use atomic operations
  even if they could race against a clear of the Accessed bit.  This is
  deliberate because KVM and mm/ tolerate false positives/negatives for
  accessed information, and testing has shown that reducing the latency of
  aging is far more beneficial to overall system performance than providing
  "perfect" young/old information.

* Defer runtime CPUID updates until KVM emulates a CPUID instruction, to
  coalesce updates when multiple pieces of vCPU state are changing, e.g. as
  part of a nested transition.

* Fix a variety of nested emulation bugs, and add VMX support for synthesizing
  nested VM-Exit on interception (instead of injecting #UD into L2).

* Drop "support" for async page faults for protected guests that do not set
  SEND_ALWAYS (i.e. that only want async page faults at CPL3)

* Bring a bit of sanity to x86's VM teardown code, which has accumulated
  a lot of cruft over the years.  Particularly, destroy vCPUs before
  the MMU, despite the latter being a VM-wide operation.

* Add common secure TSC infrastructure for use within SNP and in the
  future TDX

* Block KVM_CAP_SYNC_REGS if guest state is protected.  It does not make
  sense to use the capability if the relevant registers are not
  available for reading or writing.

* Don't take kvm->lock when iterating over vCPUs in the suspend notifier to
  fix a largely theoretical deadlock.

* Use the vCPU's actual Xen PV clock information when starting the Xen timer,
  as the cached state in arch.hv_clock can be stale/bogus.

* Fix a bug where KVM could bleed PVCLOCK_GUEST_STOPPED across different
  PV clocks; restrict PVCLOCK_GUEST_STOPPED to kvmclock, as KVM's suspend
  notifier only accounts for kvmclock, and there's no evidence that the
  flag is actually supported by Xen guests.

* Clean up the per-vCPU "cache" of its reference pvclock, and instead only
  track the vCPU's TSC scaling (multipler+shift) metadata (which is moderately
  expensive to compute, and rarely changes for modern setups).

* Don't write to the Xen hypercall page on MSR writes that are initiated by
  the host (userspace or KVM) to fix a class of bugs where KVM can write to
  guest memory at unexpected times, e.g. during vCPU creation if userspace has
  set the Xen hypercall MSR index to collide with an MSR that KVM emulates.

* Restrict the Xen hypercall MSR index to the unofficial synthetic range to
  reduce the set of possible collisions with MSRs that are emulated by KVM
  (collisions can still happen as KVM emulates Hyper-V MSRs, which also reside
  in the synthetic range).

* Clean up and optimize KVM's handling of Xen MSR writes and xen_hvm_config.

* Update Xen TSC leaves during CPUID emulation instead of modifying the CPUID
  entries when updating PV clocks; there is no guarantee PV clocks will be
  updated between TSC frequency changes and CPUID emulation, and guest reads
  of the TSC leaves should be rare, i.e. are not a hot path.

x86 (Intel):

* Fix a bug where KVM unnecessarily reads XFD_ERR from hardware and thus
  modifies the vCPU's XFD_ERR on a #NM due to CR0.TS=1.

* Pass XFD_ERR as the payload when injecting #NM, as a preparatory step
  for upcoming FRED virtualization support.

* Decouple the EPT entry RWX protection bit macros from the EPT Violation
  bits, both as a general cleanup and in anticipation of adding support for
  emulating Mode-Based Execution Control (MBEC).

* Reject KVM_RUN if userspace manages to gain control and stuff invalid guest
  state while KVM is in the middle of emulating nested VM-Enter.

* Add a macro to handle KVM's sanity checks on entry/exit VMCS control pairs
  in anticipation of adding sanity checks for secondary exit controls (the
  primary field is out of bits).

x86 (AMD):

* Ensure the PSP driver is initialized when both the PSP and KVM modules are
  built-in (the initcall framework doesn't handle dependencies).

* Use long-term pins when registering encrypted memory regions, so that the
  pages are migrated out of MIGRATE_CMA/ZONE_MOVABLE and don't lead to
  excessive fragmentation.

* Add macros and helpers for setting GHCB return/error codes.

* Add support for Idle HLT interception, which elides interception if the vCPU
  has a pending, unmasked virtual IRQ when HLT is executed.

* Fix a bug in INVPCID emulation where KVM fails to check for a non-canonical
  address.

* Don't attempt VMRUN for SEV-ES+ guests if the vCPU's VMSA is invalid, e.g.
  because the vCPU was "destroyed" via SNP's AP Creation hypercall.

* Reject SNP AP Creation if the requested SEV features for the vCPU don't
  match the VM's configured set of features.

Selftests:

* Fix again the Intel PMU counters test; add a data load and do CLFLUSH{OPT} on the data
  instead of executing code.  The theory is that modern Intel CPUs have
  learned new code prefetching tricks that bypass the PMU counters.

* Fix a flaw in the Intel PMU counters test where it asserts that an event is
  counting correctly without actually knowing what the event counts on the
  underlying hardware.

* Fix a variety of flaws, bugs, and false failures/passes dirty_log_test, and
  improve its coverage by collecting all dirty entries on each iteration.

* Fix a few minor bugs related to handling of stats FDs.

* Add infrastructure to make vCPU and VM stats FDs available to tests by
  default (open the FDs during VM/vCPU creation).

* Relax an assertion on the number of HLT exits in the xAPIC IPI test when
  running on a CPU that supports AMD's Idle HLT (which elides interception of
  HLT if a virtual IRQ is pending and unmasked).

21 Mar 2025: USB-serial update for 6.15-rc1 [+ + +]
USB-serial update for 6.15-rc1

Here's a single USB-serial cleanup for 6.15-rc1 that's been sitting in
linux-next for a few weeks without any reported issues.

21 Mar 2025: SOC FSL for 6.15 [+ + +]
Hi Arnd,


Thanks
Christophe

FSL SOC Changes for 6.15:

- irqdomain cleanups from Jiry

- Add Ioana as Maintainer of fsl-mc bus and remove Laurentiu and Stuart

- Remove deadcode from fsl-mc bus

 
20 Mar 2025: gfs2 changes for 6.15 [+ + +]
please consider pulling the following gfs2 changes for 6.15.

Thanks,
Andreas

gfs2 changes

- Fix two bugs related to locking request cancelation (locking request
  being retried instead of canceled; canceling the wrong locking
  request).

- Prevent a race between inode creation and deferred delete analogous
  to commit ffd1cf0443a2 from 6.13.  This now allows to further simplify
  gfs2_evict_inode() without introducing mysterious problems.

- When in inode delete should be verified / retried "later" but that
  isn't possible, skip the delete instead of carrying it out
  immediately.  This broke in 6.13.

- More folio conversions from Matthew Wilcox (plus a fix from Dan
  Carpenter).

- Various minor fixes and cleanups.

20 Mar 2025: cgroup: Changes for v6.15 [+ + +]
cgroup: Changes for v6.15

- Add deprecation info messages to cgroup1-only features.

- rstat updates including a bug fix and breaking up a critical section to
  reduce interrupt latency impact.

- Other misc and doc updates.

20 Mar 2025: workqueue: Changes for v6.15 [+ + +]
workqueue: Changes for v6.15

Just one commit to expose system BH workqueues to rust.

20 Mar 2025: slab updates for 6.15 [+ + +]
please pull the latest slab updates from:


There's a small conflict with the rcu tree:
https://lore.kernel.org/all/20250212150941.5e4fa1c9@canb.auug.org.au/

Thanks,
Vlastimil


* Move the TINY_RCU kvfree_rcu() implementation from RCU to SLAB
  subsystem and cleanup its integration (Vlastimil Babka)

  Following the move of the TREE_RCU batching kvfree_rcu() implementation in
  6.14, move also the simpler TINY_RCU variant. Refactor the #ifdef guards
  so that the simple implementation is also used with SLUB_TINY. Remove the
  need for RCU to recognize fake callback function pointers
  (__is_kvfree_rcu_offset()) when handling call_rcu() by implementing a
  callback that calculates the object's address from the embedded rcu_head
  address without knowing its offset.

* Improve kmalloc cache randomization in kvmalloc (GONG Ruiqi)

  Due to an extra layer of function call, all kvmalloc() allocations used the
  same set of random caches. Thanks to moving the kvmalloc() implementation to
  slub.c, this is improved and randomization now works for kvmalloc.

* Various improvements to debugging, testing and other cleanups (Hyesoo Yu,
  Lilith Gkini, Uladzislau Rezki, Matthew Wilcox, Kevin Brodsky, Ye Bin)

 
19 Mar 2025: media updates [+ + +]
As I'm doing a biz trip tomorrow to a place where I might have some troubles
sending PRs. I don't expect any real issue, but better to be safe than sorr=
y.

So, I'm opting to send my PR to 6.15 in advance. Please notice that there a=
re
3 patches addressing some Kconfig issues merged today. They hopefully will =
be
on -next before 6.15 the merge window.

So, please pull during the merge window from:

a/v6.15-1

For:

- platform: synopsys: hdmirx: Fix 64-bit division for 32-bit targets;
- vim2m: print device name after registering device;
- Synopsys DesignWare HDMI RX Driver and various fixes;
- cec/printk fixes and the removal of the vidioc_g/s_ctrl and vidioc_queryc=
trl callbacks;
- AVerMedia H789-C PCIe support and rc-core structs padding;
- Several camera sensor patches;
- uvcvideo improvements;
- visl: Fix ERANGE error when setting enum controls;
- codec fixes;
- V4L2 camera sensor patches mostly;
- chips-media: wave5: Fixes;
- Add SDM670 camera subsystem;
- Qualcomm iris video decoder driver;
- dt-bindings: update clocks for sc7280-camss;
- various fixes and enhancements.
   =20
[GIT PULL for v6.15] media updates

19 Mar 2025: LoongArch KVM changes for v6.15 [+ + +]
LoongArch KVM changes for v6.15

1. Remove unnecessary header include path.
2. Remove PGD saving during VM context switch.
3. Add perf events support for guest VM.

 
18 Mar 2025: KVM: x86: Changes for 6.15 [+ + +]
There are two conflicts between the PV clock pull request and the Xen
pull request.

1. The Xen branch moves Xen TSC leaf updates to CPUID emulation, and the PV
   clock branch renames the fields in kvm_vcpu_arch that are used to update
   the Xen leafs.  After the dust settles, kvm_cpuid() should look like:

   } else if (IS_ENABLED(CONFIG_KVM_XEN) &&
   kvm_xen_is_tsc_leaf(vcpu, function)) {
/*
 * Update guest TSC frequency information if necessary.
 * Ignore failures, there is no sane value that can be
 * provided if KVM can't get the TSC frequency.
 */
if (kvm_check_request(KVM_REQ_CLOCK_UPDATE, vcpu))
kvm_guest_time_update(vcpu);

if (index == 1) {
*ecx = vcpu->arch.pvclock_tsc_mul;
*edx = vcpu->arch.pvclock_tsc_shift;
} else if (index == 2) {
*eax = vcpu->arch.hw_tsc_khz;
}
}

2. The Xen branch moves and renames xen_hvm_config so that its xen.hvm_config,
   while PV clock branch shuffles use of xen_hvm_config/xen.hvm_config flags.
   The resulting code in kvm_guest_time_update() should look like:

#ifdef CONFIG_KVM_XEN
/*
 * For Xen guests we may need to override PVCLOCK_TSC_STABLE_BIT as unless
 * explicitly told to use TSC as its clocksource Xen will not set this bit.
 * This default behaviour led to bugs in some guest kernels which cause
 * problems if they observe PVCLOCK_TSC_STABLE_BIT in the pvclock flags.
 *
 * Note!  Clear TSC_STABLE only for Xen clocks, i.e. the order matters!
 */
if (ka->xen.hvm_config.flags & KVM_XEN_HVM_CONFIG_PVCLOCK_TSC_UNSTABLE)
hv_clock.flags &= ~PVCLOCK_TSC_STABLE_BIT;

if (vcpu->xen.vcpu_info_cache.active)
kvm_setup_guest_pvclock(&hv_clock, v, &vcpu->xen.vcpu_info_cache,
offsetof(struct compat_vcpu_info, time));
if (vcpu->xen.vcpu_time_info_cache.active)
kvm_setup_guest_pvclock(&hv_clock, v, &vcpu->xen.vcpu_time_info_cache, 0);
#endif
18 Mar 2025: mtd: spi-nor: changes for v6.15 [+ + +]
Hi, Miquel,

Here is the SPI NOR PR for v6.15. We'll try to have it a week earlier
next time.

Thanks,
ta

SPI NOR adds support for few flashes. Few cleanup patches for the core
driver, where we touched the headers inclusion list and we start using
the scope based mutex cleanup helpers.

 
17 Mar 2025: execve updates for v6.15-rc1 [+ + +]

Thanks!

-Kees

execve updates for v6.15-rc1

- elf: Define and use note name macros (Akihiko Odaki)

- elf: add remaining SHF_ flag macros (Timur Tabi)

- binfmt: Remove loader from linux_binprm struct (Yonatan Goldschmidt)

- binfmt_elf_fdpic: fix variable set but not used warning (sunliming)

17 Mar 2025: seccomp updates for v6.15-rc1 [+ + +]

Thanks!

-Kees

seccomp updates for v6.15-rc1

- avoid the lock trip seccomp_filter_release in common case (Mateusz Guzik)

- remove unused 'sd' argument through-out (Oleg Nesterov)

- selftests/seccomp: Add hard-coded __NR_uretprobe for x86_64

17 Mar 2025: pstore update for v6.15-rc1 [+ + +]

Thanks!

-Kees

pstore update for v6.15-rc1

- pstore: Change kmsg_bytes storage size to u32

17 Mar 2025: hardening updates for v6.15-rc1 [+ + +]
scattered changes all over. Patches touching things outside of our
traditional areas in the tree have been Acked by maintainers or were
trivial changes.

Thanks!

-Kees

hardening updates for v6.15-rc1

- loadpin: remove unsupported MODULE_COMPRESS_NONE (Arulpandiyan Vadivel)

- samples/check-exec: Fix script name (Mickaël Salaün)

- yama: remove needless locking in yama_task_prctl() (Oleg Nesterov)

- lib/string_choices: Sort by function name (R Sundar)

- hardening: Allow default HARDENED_USERCOPY to be set at compile time
  (Mel Gorman)

- uaccess: Split out compile-time checks into ucopysize.h

- kbuild: clang: Support building UM with SUBARCH=i386

- x86: Enable i386 FORTIFY_SOURCE on Clang 16+

- ubsan/overflow: Rework integer overflow sanitizer option

- Add missing __nonstring annotations for callers of memtostr*()/strtomem*()

- Add __must_be_noncstr() and have memtostr*()/strtomem*() check for it

- Introduce __nonstring_array for silencing future GCC 15 warnings

17 Mar 2025: move-lib-kunit for v6.15-rc1 [+ + +]
to coordinate the move of selftests out of lib/ and into lib/tests/. A
separate tree was used for this to keep the paths sane with all the
work in the same place. Doing this across multiple trees was going to
be very difficult, so any on-going updates were collected here to try to
avoid merge conflicts. I think only one small conflict remains, just
today, detailed here:
https://lore.kernel.org/linux-next/20250317213953.01ca90e9@canb.auug.org.au/
sfr's resolution looks correct.

Thanks!

-Kees

move-lib-kunit for v6.15-rc1

- move lib/ selftests into lib/tests/ (Kees Cook, Gabriela Bittencourt,
  Luis Felipe Hernandez, Lukas Bulwahn, Tamir Duberstein)

- lib/math: Add int_log test suite (Bruno Sobreira França)

- lib/math: Add Kunit test suite for gcd() (Yu-Chun Lin)

- lib/tests/kfifo_kunit.c: add tests for the kfifo structure (Diego Vieira)

- unicode: refactor selftests into KUnit (Gabriela Bittencourt)

- lib/prime_numbers: convert self-test to KUnit (Tamir Duberstein)

- printf: convert self-test to KUnit (Tamir Duberstein)

- scanf: convert self-test to KUnit (Tamir Duberstein)

 
16 Mar 2025: w1: drivers for v6.15 [+ + +]
1-Wire bus drivers for v6.14

1. W1 UART: Fix theoretical NULL pointer dereference in probe due to
   serdev ops being set too late.  That's said such scenario is unlikely
   to happen as serdev read would need to happen before writing
   anything.

2. W1 therm: Simplify with HWMON_CHANNEL_INFO.

16 Mar 2025: memory: drivers for v6.15 [+ + +]
Memory controller drivers for v6.15

1. Minor cleanup in Nvidia Tegra20 EMC.
2. Extend support for Mediatek MT8192 to match recommended by vendor and
   improve VENC hardware behavior during stress testing.

16 Mar 2025: pinctrl: samsung: drivers for v6.15 [+ + +]
Samsung pinctrl drivers changes for v6.15

1. Add pin controller drivers for newly usptreamed Samsung Exynos2200
   and Exynos7870.
2. Correct filter configuration offset of some of Google GS101 SoC pin
   banks, which later is supposed to be used during system
   suspend/resume.

 
13 Mar 2025: Rust `hrtimer` support for v6.15 [+ + +]
Hi Miguel,


This initial support allows for intrusive use of timers without
allocating when starting a timer. We support `Pin<Box<T>>`, `Arc<T>`,
`Pin<&T>` and `Pin<&mut T>` pointer types for working with these
intrusive timers. We support at most one `HrTimer` field in a struct for
use with this API.

For now, the primary users will be the Rust null block driver, `rnull`,
and the Rust kernel mode setting driver `rkvms`. I expect us to add more
features to the API as the demands from users grow.

The PR also includes two changes for the core rust and rust/alloc
subsytems that are dependencies of the hrtimer Rust API: `Arc::as_ptr`
and `Box::into_pin`. The alloc change was Ack'd by Danilo.

The commits were in linux-next since next-20250313.

Rust hrtimer API for v6.15

Introduce Rust support for the `hrtimer` subsystem:

 - Add a way to use the `hrtimer` subsystem from Rust. Rust code can now set up
   intrusive timers without allocating when starting the timer.

 - Add support for `Pin<Box<_>>`, `Arc<_>`, `Pin<&_>` and `Pin<&mut _>` as
   pointer types for use with timer callbacks.

 - Add support for setting clock source and timer mode.

`kernel` crate:

 - Add `Arc::as_ptr` for converting an `Arc` to a raw pointer. This is a
   dependency for the `hrtimer` API.

 - Add `Box::into_pin` for converting a `Box<_>` into a `Pin<Box<_>>` to align
   with Rust `alloc`. This is a dependency for the `hrtimer` API.

 
12 Mar 2025: arm64: dts: ti: K3 devicetree updates for v6.15 [+ + +]
Hi ARM SoC Maintainers,


TI K3 device tree updates for v6.15

Generic Fixups/Cleanups:

SoC Specific features and Fixes:
AM62Ax:
Enable MCU domain pinctrl node

J784S4/J742S4:
GICD reg size fixes
Serdes lane ctrl reg mux mask fix

AM62P/J722s:
Wakeup UART0 sysc updates for system wakeup
pinctrl node fixes drop pinctrl-single,gpio-ranges
BCDMA CSI-RX support
Audio REFCLKx output support

Board Specific:
J784S4:
EVM: Cleanup duplicate gpio-hogs

J722S:
TypeC port mux selection fix

AM62Ax
SK: boot-phase tag to support USB bootmode
RTC support
Aliases for wakeup and MCU serial UARTs

AM62P
SK: boot-phase tag to support USB bootmode
USB wakeup support
Aliases for wakeup and MCU serial UARTs

AM62:
verdin-dahila: microphone support
SK: Aliases for wakeup and MCU serial UARTs
BeaglePlay: reserved CMA region for Multimedia applications

J721e:
SK/EVM: boot-phase tags for Serdes for DFU boot

Phytech board updates:
Boot-phase tag updates for AM64/AM62/AM62A boards
DTS coding style cleanups
RTOS IPC reserved-memory additions
DT overlay for X27 Connectors on AM64 SOMs

J721S2 SOM:
Add flash partitions

12 Mar 2025: soc: ti: Driver updates for v6.15 [+ + +]
Hi,

TI SoC driver updates for v6.15

- ti-sci: Default set to ARCH_K3 for the ti sci driver in preperation for
  the driver to be default set as module in defconfig.
- k3-socinfo: Explicitly build up regmap instead of depending on syscon
  helper

 
11 Mar 2025: clk: imx: Updates for v6.15 [+ + +]
i.MX clock changes for 6.15

- Add missing AXI clock to the i.MX8MP AUDIOMIX in dt-bindings schema.
- Fix DSP and OCRAM_A parent clocks in i.MX8MP AUDIOMIX clock provider.
- Document vendor specific operating-mode property in i.MX8M clock
  provider dt-bindings schema.
- Apply overdrive/nominal constraints based on DT property in i.MX8MP
  clock provider.

 
10 Mar 2025: cpupower update for Linux 6.15-rc1 [+ + +]
Hi Rafael,


Fixes lib version-ing, memory leaks in error legs, removes hard-coded
values, and implements CPU physical core querying.

diff is attached.

thanks,
-- Shuah

linux-cpupower-6.15-rc1

Fixes lib version-ing, memory leaks in error legs, removes hard-coded
values, and implements CPU physical core querying.

10 Mar 2025: [PULL REQUEST] Intel IOMMU updates for v6.15 [+ + +]
Hi Joerg,

 
9 Mar 2025: samsung: drivers for v6.15 [+ + +]
Samsung SoC drivers for v6.15

1. Add support for Exynos USI v1 serial engines.  Drivers already
   supported newer IP blocks - USI v2 - present in Exynos850 and newer.
   A bit older ARM64 designs, like Exynos8895 use older USI v1 block.

2. Add Exynos ACPM (Alive Clock and Power Manager) protocol driver
   for Google GS101 SoC.  ACPM protocol allows communication between the
   power management firmware and other embedded processors.

3. Exynos2200: Add PMU, ChipID and SYSREG Devicetree bindings.

4. Exynos7870: Add PMU and ChipID Devicetree bindings.

5. Various cleanups.

9 Mar 2025: clk: samsung: drivers for v6.15 [+ + +]
Hi,

New clk drivers for Samsung SoC.  This pull includes drivers which you
commented later and pointed out few issues.  Pointed issues are in all Samsung
clk drivers and the ones here just copy existing patterns:

1. Headers: I fixed it for new and existing drivers and this pull request
includes the fixes.
2. device_get_match_data(): I still wait for contributors response. If they do
not respond, I will fix it for next cycle.
3. refdata and platform_driver_probe: I tried fixing it, but incomplete and
need to investigate more.

Best regards,
Krzysztof


Samsung SoC clock drivers changes for 6.15

1. Exynos990: Add support for the PERIS clock controller in existing
   driver.
2. Exynos2200: Add new driver for several clock controllers (Alive,
   CMGP, HSI, PERIC/PERIS, TOP, UFS and VFS).
3. Exynos7870: Add new driver for several clock controllers (Alive,
   MIF, DISP AUD, FSYS, G3D, ISP, MFC and PERI).
4. Correct undefined behavior / runtime array bounds check of flexible
   array member (last 'hws' element in 'struct clk_hw_onecell_data').
   The code was logically correct for normal case, but not for the
   clang/GCC runtime bounds checking of flexible array member.
5. Few cleanups: spelling, header inclusions.

9 Mar 2025: Third and final batch of Apple SoC DT updates for v6.15 [+ + +]
Hi,

This is our final pull request for Apple SoC device tree updates for v6.15
based on the previous one [1].
Drivers for the M1/M2 touchbar screen and pre-M1 (iPhone, etc.) backlight
have been merged since then and this batch includes the required device tree
nodes. Both drivers and these commits have been part of -next for at least a
few days. The corresponding drivers are scheduled to be included in the 6.15
merge window as well.



Best,

Sven


[1] https://lore.kernel.org/soc/20250302115808.59172-1-sven@svenpeter.dev/

Apple SoC DT updates for 6.15, final batch:

- Added touchbar screen nodes for M1/M2 platforms
- Added backlight nodes for iPhone, iPad and iPod touch

 
8 Mar 2025: nolibc changes for v6.15 [+ + +]
Hi Paul,

nolibc changes for 6.15

Changes
-------

* 32bit s390 support
* opendir()/readdir_r()/closedir() support
* openat() support
* sscanf() support
* various cleanups

 
6 Mar 2025: Linux Media vimc update for Linux 6.15-rc1 [+ + +]
Hi Mauro,


Fixes a bug in vimc streamer pipeline init code found by syzbot.

diff is attached.

thanks,
-- Shuah

linux-vimc-6.15-rc1

Fixes a bug in vimc streamer pipeline init code found by syzbot.

 
2 Mar 2025: Second batch of Apple SoC DT updates for v6.15 [+ + +]
Hi,

this is the second batch of device tree updates for Apple SoCs based
on the first PR sent earlier [1].
This one adds nodes for SPI controller, SPI NOR flash and NVRAM partitions
for M1 and M2 devices. The SPI controller driver has been merged for a while
already and we just forgot to pick the device tree changes up.
It also adds the touchbar digitizer nodes. The corresponding driver and
dt-bindings are already in -next and should be part of the 6.15 merge window
as well.


Best,

Sven


[1] https://lore.kernel.org/soc/20250209135558.8243-1-sven@svenpeter.dev/

Apple SoC DT updates for 6.15, second batch:

- Added a missing p-state for iPad mini 4
- Added SPI controller nodes for M1 and M2 devices
- Added SPI NOR flash nodes and NVRAM partitions
- Added touchbar digitizer nodes for M1 and M2 devices

2 Mar 2025: Apple SoC RTKit IPC library updates for v6.15 [+ + +]
Hi,

Please merge these Apple SoC RTKit IPC library updates for v6.15.
This batch includes a bunch of minor improvements and bugfixes mostly
required for our downstream drivers (e.g. DCP) which we are planning to
upstream in the next months.
There's one API change which requires a single line adjustment to our
NVMe driver as well which has been reviewed by a NVMe maintainer.


Best,


Sven

Apple SoC RTKit IPC library updates for 6.15:

- Additional logging for errors
- A few minor improvements and bugfixes required for drivers that are
  yet to be upstreamed

 
25 Feb 2025: LOCKDEP and Rust locking changes for v6.15 [+ + +]
Hi Peter & Ingo,


Lockdep changes for v6.15:

- Fix kernel-doc for rtmutex.
- Fix lock wait context check on softirq for PREEMPT_RT.
- Disable KASAN for lockdep to improve debug kernel performance.

Miscellaneous locking changes for v6.15:

- Use wake_q for semaphore to avoid wake-up in lock critical sections.

Rust locking changes for v6.15:

- Fix the soundness issue around dynamically allocated lock class keys.
- Add CondVar::wait_interruptible_freezable() to allow freezable waits.
- Add Guard::lock_ref() to access the lock reference behind a lock
  guard.

 
9 Feb 2025: Apple SoC DT updates for v6.15 [+ + +]
Hi,

Please merge these DT changes for v6.15.

This batch adds device trees for Apple T2 SoCs used in pre-M1 x86 machines
as a co-processor and also adds cpufreq and PMGR nodes to a bunch of pre-M1
Apple iDevice SoC device trees.


Best,


Sven


Apple SoC DT updates for 6.15:

- Added device trees for Apple T2 SoCs
- Added cpufreq and PMGR compatibles and nodes for Apple A7-A11 and T2
  SoCs