Thanks! -Kees seccomp update for v7.1-rc1 - selftests: Add hard-coded __NR_uprobe for x86_64 (Oleg Nesterov)
Thanks! -Kees hardening updates for v7.1-rc1 - randomize_kstack: Improve implementation across arches (Ryan Roberts) - lkdtm/fortify: Drop unneeded FORTIFY_STR_OBJECT test - refcount: Remove unused __signed_wrap function annotations
Thanks! -Kees execve updates for v7.1-rc1 - use strnlen() in __set_task_comm (Thorsten Blum) - update task_struct->comm comment (Thorsten Blum)
Please merge this PR for the IPE (Integrity Policy Enforcement) update for 7.1. This PR contains a single commit from Evan Ducas that fixes several spelling and grammar mistakes in the IPE documentation. There are no functional changes. Thanks, Fan -- ipe/stable-7.1 PR 20260413
Thanks! -Kees pstore updates for v7.1-rc1 - fix ftrace dump, when ECC is enabled (Andrey Skvortsov) - fix resource leak when ioremap() fails (Cole Leavitt) - Remove useless memblock header (Guilherme G. Piccoli) - Fix ECC parameter help text (Guilherme G. Piccoli) - Keep ftrace module parameter and debugfs switch in sync (Guilherme G. Piccoli) - Factor KASLR offset in the core kernel instruction addresses (Guilherme G. Piccoli)
Hi Linus,
Improvements and fixes kselftest, kselftest harness, frameworks
and individual tests:
-- cpu-hotplug: fix to check if cpu hotplug is supported to avoid
test failures when cpu hotplug isn't supported.
-- frace: fix to relevant comparisons and path checks in the helper so
it handles those patterns without spurious shell warnings.
-- runner.sh: add ktrap support
-- tracing: fix to make --logdir option work again
-- tracing: fix to check awk supports non POSIX strtonum()
-- mqueue: fix incorrectly named settings file to make sure the test
used the correct timeout value
-- kselftest:
- fix to treat xpass as successful result
- add ksft_reset_state()
-- kselftest_harness:
- validate kselftest exit codes are handled explicitly
- add detection of invalid mixing of kselftest and harness functionality
- add validation of intermixing of kselftest and harness functionality
-- run_kselftest.sh:
- remove unused $ROOT
- resolve BASE_DIR with pwd -P to avoid dependency on realpath
or readlink commands to generate a physical absolute path for
BASE_DIR
- allow choosing per-test log directory
- preserve subtarget failures in all/install
diff is attached.
thanks,
-- Shuah
linux_kselftest-next-7.1-rc1
Improvements and fixes kselftest, kselftest harness, frameworks
and individual tests:
-- cpu-hotplug: fix to check if cpu hotplug is supported to avoid
test failures when cpu hotplug isn't supported.
-- frace: fix to relevant comparisons and path checks in the helper so
it handles those patterns without spurious shell warnings.
-- runner.sh: add ktrap support
-- tracing: fix to make --logdir option work again
-- tracing: fix to check awk supports non POSIX strtonum()
-- mqueue: fix incorrectly named settings file to make sure the test
used the correct timeout value
-- kselftest:
- fix to treat xpass as successful result
- add ksft_reset_state()
-- kselftest_harness:
- validate kselftest exit codes are handled explicitly
- add detection of invalid mixing of kselftest and harness functionality
- add validation of intermixing of kselftest and harness functionality
-- run_kselftest.sh:
- remove unused $ROOT
- resolve BASE_DIR with pwd -P to avoid dependency on realpath
or readlink commands to generate a physical absolute path for
BASE_DIR
- allow choosing per-test log directory
- preserve subtarget failures in all/install
please pull the x86/sev lineup for v7.1-rc1. Thx. --- - Change the SEV host code handling of when SNP gets enabled in order to = allow the machine to claim SNP-related resources only when SNP guests are rea= lly going to be launched. The user requests this by loading the ccp module = and thus it controls when SNP initialization is done So export an API which module code can call and do the necessary SNP se= tup only when really needed - Drop an unnecessary write-back and invalidate operation that was being performed too early, since the ccp driver already issues its own at the correct point in the initialization sequence =E2=80=94 Drop the hotplug callbacks for enabling SNP on newly onlined CP= Us, which were both architecturally unsound (the firmware rejects initialization = if any CPU lacks the required configuration) and buggy (the MFDM SYSCFG MSR bi= t was not being set) - Code refactoring and cleanups to accomplish the above
please pull the x86/misc lineup for v7.1-rc1. Thx. --- =E2=80=94 Reference the tip tree maintainer handbook directly from the re= levant MAINTAINERS file entries (covering timers, IRQ, locking, scheduling, pe= rf, x86, and others) so that contributors and tooling can know where to look =E2=80=94 Enable interrupt remapping in defconfig, which is an architectu= ral requirement for x2APIC to function correctly on bare metal. Without it= , x2APIC was effectively enabled but non-functional. =E2=80=94 Ensure that drivers which register custom restart handlers (suc= h as those needed for SoC-based x86 devices like Intel Lightning Mountain) are act= ually invoked during reboot, bringing x86 in line with how other architecture= s handle this. - Cleanups
please pull the x86/microcode lineup for v7.1-rc1. Thx. --- - The kernel carries a table of Intel CPUs family,model,stepping,...,etc tuples which say what is the latest microcode for that particular CPU. Some CPU variants differ only by the platform ID which determines what microcode needs to be loaded on them. Carve out the platform ID handling from the microcode loader and make it available in a more generic place so that the old microcode verification machinery can use it
please pull the x86 FRED lineup for v7.1-rc1. Thx. --- - We made the FRED support an opt-in initially out of fear of it breaking machines left and right in the case of a hw bug in the first generation of machines supporting it. Now that that the FRED code has seen a lot of hammering, flip the logic to be opt-out as is the usual case with new hw features
The only real thing of note here is printing the TDX module version. This is a little silly on its own, but the upcoming TDX module update code needs the same TDX module call. This shrinks that set a wee bit. There's also few minor macro cleanups and a tweak to the GetQuote ABI to make it easier for userspace to detect zero-length (failed) quotes. The GetQuote tweak collides with a fix that showed up around 7.0-rc5. Ingo resolved the conflict for the tip tree and I've appended it here in case it is useful to you. -- - Print TDX module version during boot - Make TDX attribute naming consistent
please pull the x86 resctrl lineup for v7.1-rc1. Btw, this is my first pull request text using AI. It is ok-ish but it was= too much bla so I had to shorten it into sanity. Some of the formulations are still "too much" but I'll be even more strict with the next ones. :-) Thx. --- =E2=80=94 Add return value descriptions to several internal functions, ad= dressing kernel-doc complaints =E2=80=94 Add the x86 maintainer mailing list to the resctrl section so t= hey are automatically included in patch submissions, and reference the applicab= le contribution rules document =E2=80=94 Allow users to apply a single Capacity Bitmask to all cache dom= ains at once using '*' as a shorthand, instead of having to specify each domain individually. This is particularly user-friendly on high core-count sys= tems with many cache clusters - When a user provides a non-existent domain ID while configuring cache allocation, ensure the failure reason is properly reported to the user rather than silently returning an error with a misleading "ok" status
This depends on tip/sched-core and cgroup/for-7.1 and should be pulled after both. sched_ext: Changes for v7.1 - Cgroup sub-scheduler groundwork. Multiple BPF schedulers can be attached to cgroups and the dispatch path is made hierarchical. This involves substantial restructuring of the core dispatch, bypass, watchdog, and dump paths to be per-scheduler, along with new infrastructure for scheduler ownership enforcement, lifecycle management, and cgroup subtree iteration. The enqueue path is not yet updated and will follow in a later cycle. - scx_bpf_dsq_reenq() generalized to support any DSQ including remote local DSQs and user DSQs. Built on top of this, SCX_ENQ_IMMED guarantees that tasks dispatched to local DSQs either run immediately or get reenqueued back through ops.enqueue(), giving schedulers tighter control over queueing latency. Also useful for opportunistic CPU sharing across sub-schedulers. - ops.dequeue() was only invoked when the core knew a task was in BPF data structures, missing scheduling property change events and skipping callbacks for non-local DSQ dispatches from ops.select_cpu(). Fixed to guarantee exactly one ops.dequeue() call when a task leaves BPF scheduler custody. - Kfunc access validation moved from runtime to BPF verifier time, removing runtime mask enforcement. - Idle SMT sibling prioritization in the idle CPU selection path. - Documentation, selftest, and tooling updates. Misc bug fixes and cleanups. - Merges from tip/sched-core, cgroup/for-7.1, and for-7.0-fixes to resolve dependencies and conflicts for the above changes.
please pull the RAS lineup for v7.1-rc1. Thx. --- - Add new AMD MCA bank names and types to the MCA code, preceded by a clean up of the relevant places to have them more developer-friendly (read: sort them alphanumerically and clean up comments) such that adding new banks is easy
workqueue: Changes for v7.1 - New default WQ_AFFN_CACHE_SHARD affinity scope subdivides LLCs into smaller shards to improve scalability on machines with many CPUs per LLC. - Misc: system_dfl_long_wq for long unbound works, devm_alloc_workqueue() for device-managed allocation, sysfs exposure for ordered workqueues and the EFI workqueue, removal of HK_TYPE_WQ from wq_unbound_cpumask, and various small fixes.
cgroup: Changes for v7.1 - cgroup_file_notify() locking converted from a global lock to per-cgroup_file spinlock with a lockless fast-path when no notification is needed. - Misc changes including exposing cgroup helpers for sched_ext and minor fixes.
Hi Linus,
Fixes kunit tool to
-- terminate kernel under test on SIGINT when it catches SIGINT
to make sure the TTY isn't messed up and terminate the running
kernel.
-- recommend --raw_output=all when KTAP header isn't found in the kernel
output, it's useful to re-run the test with --raw_output=all to find
out the reasons why the test didn't complete.
-- skip stty when stdin is not a tty to avoid writing noise to stderr.
-- show suites when user runs --list_suites option instead of entire
list of tests to make the output user friendly and concise.
diff is attached.
thanks,
-- Shuah
linux_kselftest-kunit-7.1-rc1
Fixes kunit tool to
-- terminate kernel under test on SIGINT when it catches SIGINT
to make sure the TTY isn't messed up and terminate the running
kernel.
-- recommend --raw_output=all when KTAP header isn't found in the kernel
output, it's useful to re-run the test with --raw_output=all to find
out the reasons why the test didn't complete.
-- skip stty when stdin is not a tty to avoid writing noise to stderr.
-- show suites when user runs --list_suites option instead of entire
list of tests to make the output user friendly and concise.
spi: Updates for v7.1 A busy release for SPI, almost all of it in a couple of larger fix and cleanup serieses for patterns that affected many drivers. We do have a couple of core API additions as well, relatively application specific but they enable some new use cases. - A packed command operation for spi-mem devices. - Improvements to the ancillary device support to enable some IIO use cases from Antoniu Miclaus. - Fixes for a registration ordering issue pattern caused by the handover between allocation and registration of controllers in concert with devm from Johan Hovold. - Improvements to handling of clock allocation from Pei Xiao. - Cleanups in the fsl-lpspi driver from Marc Kleine-Budde. - Support for Renesas RZ/G3E and RZ/G3L.
regulator: Updates for v7.1 This has been a very quiet update for the regulator API, the bulk of the diffstat is DT binding conversions and the most promient series in the changelog is Johan Hovold cleaning up some leaks of OF nodes. For some reason we have had several different people sending improvements to better describe the parent supplies for existing regulators, these look to be independent efforts. The only new hardware support is for some Motorola custom varints of cpcap.
regmap: Updates for v7.1 This has been quite a busy release for regmap, the user visible changes are quite minor but there's some quite good work on internal code improvements. - Cleanup helper for __free()ing regmap_fields. - Support non-devm I3C regmaps. - A bunch of cleanup work, mostly from Andy Shevchenko. - Fix for bootstrapping issues with hardware initialised regmaps, which was the main inspiration for some of the cleanups.
These align some the set_memory*() code better with the new page table APIs, especially using ptdescs as opposed to 'struct page' directly. -- - Convert x86 code to use generic "pagetable" APIs and ptdescs
The existing Linear Address Space Separation (LASS) support punted on support for common EFI and vsyscall configs. Complete the implementation by supporting EFI and vsyscall=xonly. The last few commits clean up CPUID use in the Intel "avs" sound driver and update the x86-cpuid-db file. -- - Complete LASS enabling: deal with vsyscall and EFI - Clean up CPUID usage in newer Intel audio driver
Here's the pull-request with the updates for MMC for v7.1. Details about the highlights are as usual found in the signed tag. Note that, this time I have picked up some changes to improve the mux subsystem and those are also part of this pull-request, as they are needed by mmc. Kind regards Ulf Hansson MMC core: - Add NXP vendor and IW61x device IDs for WiFi chips over SDIO - Add quirk for incorrect manufacturing date - Add support for manufacturing date beyond 2025 - Optimize support for secure erase/trim for some Kingston eMMCs - Remove support for the legacy "enable-sdio-wakeup" DT property - Use single block writes in the retry path MMC host: - dw_mmc: A great amount of cleanups/simplifications to improve the code - dw_mmc: Add clk_phase_map support - dw_mmc: Remove mshc DT alias support - dw_mmc-rockchip: Fix runtime PM support for internal phase - dw_mmc-rockchip: Add support for the RV1103B variant - loongson2: Add support for the Loongson-2K0300 SD/SDIO/eMMC controller - mtk-sd: Add support for the MT8189 variant - renesas_sdhi_core: Add support for selecting an optional mux - rtsx_pci_sdmmc: Simplify voltage switch handling - sdhci: Stop advertising the driver in dmesg - sdhci-esdhc-imx: Add 1-bit bus width support - sdhci-esdhc-imx: Add support for the NXP S32N79 variant - sdhci-msm: Add support for the IPQ5210 and IPQ9650 variants - sdhci-msm: Add support for wrapped keys - sdhci-msm: Enable ICE for CQE-capable controllers with non-CQE cards - sdhci-of-arasan: Add support for the Axiado AX3000 variant - sdhci-of-aspeed: Add support for the AST2700 variant - sdhci-of-bst: Add driver for the Black Sesame Technologies C1200 controller - sdhci-of-dwcmshc: Add support for the Canaan K230 variant - sdhci-of-dwcmshc: Add support for the HPE GSC variant - sdhci-of-dwcmshc: Prevent clock glitches to avoid malfunction - sdhci-of-k1: Add support for the K3 variant mux core/consumers: - core: Add helper functions for getting optional and selected mux-state - i2c-omap: Convert to devm_mux_state_get_optional_selected() - phy-renesas: Convert to devm_mux_state_get_optional_selected() - phy-can-transceiver: Convert to devm_mux_state_get_optional()
please pull the latest slab updates from: Thanks, Vlastimil - Sheaves performance improvements for systems with memoryless NUMA nodes, developed in response to regression reports. These mainly ensure that percpu sheaves exist and are used on cpus that belong to these memoryless nodes. (Vlastimil Babka, Hao Li). - Cleanup API usage and constify sysfs attributes. (Thomas Weißschuh) - Disable kfree_rcu() batching on builds intended for fuzzing/debugging that enable CONFIG_RCU_STRICT_GRACE_PERIOD. (Jann Horn) - Add a kunit test for kmalloc_nolock()/kfree_nolock(). (Harry Yoo) slab updates for 7.1
please pull the EDAC lineup for v7.1-rc1. Thx. --- - amd64_edac: Add support for AMD Zen 3 (family 19h, models 40h=E2=80=934= fh) - i10nm: Add GNR error information decoder support as an alternative to t= he firmware decoder =E2=80=94 versalnet: Restructure the init/teardown logic for correct and = more readable error handling. Also, fix two memory leaks and a resource leak =E2=80=94 Convert several internal structs to use bounded flex arrays, en= abling the kernel's runtime checker to catch out-of-bounds memory accesses - Mark various sysfs attribute tables read-only, preventing accidental modification at runtime - The usual fixes and cleanups across the subsystem
for you to fetch changes up to 6ccd0843b939669159f7148dfb84e6794ca6f4a8: x86/vdso changes for v7.1, by Thomas Weißschuh: - Clean up remnants of VDSO32_NOTE_MASK - Drop pointless #ifdeffery in vvar_vclock_fault() Thanks, Ingo
for you to fetch changes up to bc91133e260c8113c1119073c03b93c12aa41738:
#
# MERGE NOTE: This tree updates drivers/firmware/dmi_scan.c and
# include/linux/dmi.h, which commits have been acked
# by DMI code maintainer Jean Delvare.
#
x86/platform changes for v7.1:
- Remove M486/M486SX/ELAN support, first minimal step (Ingo Molnar)
- Print AGESA string from DMI additional information entry
(Yazen Ghannam, Mario Limonciello)
- Improve and fix the DMI code (Mario Limonciello):
- Correct an indexing error in <linux/dmi.h>
- Adjust dmi_decode() to use enums <linux/dmi.h>
- Add pr_fmt() for dmi_scan.c to fix & standardize
the log prefixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
out-of-topic modifications in x86-platform-2026-04-13:
--------------------------------------------------------
drivers/firmware/dmi_scan.c # bc91133e260c: x86/CPU/AMD: Print AGESA str
# da55ebe166d7: firmware: dmi: Add pr_fmt()
# 28189e95712b: firmware: dmi: Adjust dmi_de
include/linux/dmi.h # bc91133e260c: x86/CPU/AMD: Print AGESA str
# c064abc68e00: firmware: dmi: Correct an in
Thanks,
Ingo
for you to fetch changes up to 3b19e22cffe61bcdf10ee5e7584cfa3c1c54dc92: x86/asm updates for v7.1, by Uros Bizjak: - Remove unnecessary "memory" clobbers from FS/GS base (read-) accessors - Remove unnecessary "memory" clobber from savesegment() - Use ASM_INPUT_RM in __loadsegment_fs() - Implement loadsegment()/savesegment() macros with static inline helpers - Use savesegment() for segment register reads in ELF core dump - Use savesegment() in __show_regs() instead of inline asm - Use correct type for 'gs' variable in __show_regs() to avoid zero-extension - Clean up 'sel' variable usage in do_set_thread_area() Thanks, Ingo
for you to fetch changes up to 78cde54ea5f03398f1cf6656de2472068f6da966: Scheduler changes for v7.1: Fair scheduling updates: - Skip SCHED_IDLE rq for SCHED_IDLE tasks (Christian Loehle) - Remove superfluous rcu_read_lock() in the wakeup path (K Prateek Nayak) - Simplify the entry condition for update_idle_cpu_scan() (K Prateek Nayak) - Simplify SIS_UTIL handling in select_idle_cpu() (K Prateek Nayak) - Avoid overflow in enqueue_entity() (K Prateek Nayak) - Update overutilized detection (Vincent Guittot) - Prevent negative lag increase during delayed dequeue (Vincent Guittot) - Clear buddies for preempt_short (Vincent Guittot) - Implement more complex proportional newidle balance (Peter Zijlstra) - Increase weight bits for avg_vruntime (Peter Zijlstra) - Use full weight to __calc_delta() (Peter Zijlstra) RT and DL scheduling updates: - Fix incorrect schedstats for rt and dl thread (Dengjun Su) - Skip group schedulable check with rt_group_sched=0 (Michal Koutný) - Move group schedulability check to sched_rt_global_validate() (Michal Koutný) - Add reporting of runtime left & abs deadline to sched_getattr() for DEADLINE tasks (Tommaso Cucinotta) Scheduling topology updates by K Prateek Nayak: - Compute sd_weight considering cpuset partitions - Extract "imb_numa_nr" calculation into a separate helper - Allocate per-CPU sched_domain_shared in s_data - Switch to assigning "sd->shared" from s_data - Remove sched_domain_shared allocation with sd_data Energy-aware scheduling updates: - Filter false overloaded_group case for EAS (Vincent Guittot) - PM: EM: Switch to rcu_dereference_all() in wakeup path (Dietmar Eggemann) Infrastructure updates: - Replace use of system_unbound_wq with system_dfl_wq (Marco Crivellari) Proxy scheduling updates by John Stultz: - Make class_schedulers avoid pushing current, and get rid of proxy_tag_curr() - Minimise repeated sched_proxy_exec() checking - Fix potentially missing balancing with Proxy Exec - Fix and improve task::blocked_on et al handling - Add assert_balance_callbacks_empty() helper - Add logic to zap balancing callbacks if we pick again - Move attach_one_task() and attach_task() helpers to sched.h - Handle blocked-waiter migration (and return migration) - Add K Prateek Nayak to scheduler reviewers for proxy execution Misc cleanups and fixes by John Stultz, Joseph Salisbury, Peter Zijlstra, K Prateek Nayak, Michal Koutný, Randy Dunlap, Shrikanth Hegde, Vincent Guittot, Zhan Xusheng, Xie Yuanbin and Vincent Guittot. Thanks, Ingo
Subject: [GIT PULL] pwm: Changes for 7.1-rc1 MIME-Version: 1.0 Hello Linus, the following changes since commit 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f: Linux 7.0-rc1 (2026-02-22 13:18:59 -0800) are available in the Git repository at: wm/for-7.1-rc1 for you to fetch changes up to aa8f35172ab66c57d4355a8c4e28d05b44c938e3: pwm: th1520: fix `CLIPPY=3D1` warning (2026-03-29 09:37:13 +0200) Very few patches this time around. I think there are a few patches on the pwm mailing list that might be ready, but I didn't come around to review them in time for the merge window, so it's just these 5 commits. All changes are in next since next-20260330, I don't expect any complications. Thanks for pulling these into v7.1-rc1. Best regards Uwe pwm: Changes for v7.1-rc1 Just two minor fixes, a device tree binding addition to support a few more SoCs (without the need for driver adaptions), a driver include cleanup and the addition of the #linux-pwm irc channel to MAINTAINERS.
for you to fetch changes up to 5a84b600050c5f16b8bba25dd0e7aea845880407: Performance events changes for v7.1: Core updates: - Try to allocate task_ctx_data quickly, to optimize O(N^2) algorithm on large systems with O(100k) threads (Namhyung Kim) AMD PMU driver IBS support updates and fixes, by Ravi Bangoria: - Fix interrupt accounting for discarded samples - Fix a Zen5-specific quirk - Fix PhyAddrVal handling - Fix NMI-safety with perf_allow_kernel() - Fix a race between event add and NMIs Intel PMU driver updates: - Only check GP counters for PEBS constraints validation (Dapeng Mi) MSR driver: - Turn SMI_COUNT and PPERF on by default, instead of a long list of CPU models to enable them on (Kan Liang) Misc cleanups and fixes by Aldf Conte, Anshuman Khandual, Namhyung Kim, Ravi Bangoria and Yen-Hsiang Hsu. Thanks, Ingo
for you to fetch changes up to 1735858caa4bbb8b923860c0833d463b5d9c5f79: objtool updates for v7.1: - KLP support updates and fixes (Song Liu) - KLP-build script updates and fixes (Joe Lawrence) - Support Clang RAX DRAP sequence, to address clang false positive (Josh Poimboeuf) - Reorder ORC register numbering to match regular x86 register numbering (Josh Poimboeuf) - Misc cleanups (Wentong Tian, Song Liu) Thanks, Ingo
a/v7.1-1 For: - new CSI tegra support, covering Tegra20 and Tegra30; - new camera sensor drivers: T4ka3 and ov2732; - m88ds3103: add 3103c chip support; - uvcvideo: add support for Intel RealSense D436/D555 and P010 pixel format; - synopsys csi2rx: add i.MX93 support; - imx8-isi: add i.MX95 support; - imx8mq-mipi-csi2: add i.MX8ULP support; - dw100: add V4L2 requests support; - support for DTV devices from Hauppauge got some improvements; - media staging: dropped starfive-camss driver; - media docs: document multi-committers model and improve maint profile; - media core: add v4l2_subdev_get_frame_desc_passthrough() helper; - media core: improve error handling in fwnode parsing; - lots of driver fixes, cleanups and improvements. =20 Regards, Mauro --- [GIT PULL for v7.1] media updates
for you to fetch changes up to a21c1e961de28b95099a9ca2c3774b2eee1a33bb:
Locking updates for v7.1:
Mutexes:
- Add killable flavor to guard definitions (Davidlohr Bueso)
- Remove the list_head from struct mutex (Matthew Wilcox)
- Rename mutex_init_lockep() (Davidlohr Bueso)
rwsems:
- Remove the list_head from struct rw_semaphore and
replace it with a single pointer (Matthew Wilcox)
- Fix logic error in rwsem_del_waiter() (Andrei Vagin)
Semaphores:
- Remove the list_head from struct semaphore (Matthew Wilcox)
Jump labels:
- Use ATOMIC_INIT() for initialization of .enabled (Thomas Weißschuh)
- Remove workaround for old compilers in initializations
(Thomas Weißschuh)
Lock context analysis changes and improvements:
- Add context analysis for rwsems (Peter Zijlstra)
- Fix rwlock and spinlock lock context annotations (Bart Van Assche)
- Fix rwlock support in <linux/spinlock_up.h> (Bart Van Assche)
- Add lock context annotations in the spinlock implementation
(Bart Van Assche)
- signal: Fix the lock_task_sighand() annotation (Bart Van Assche)
- ww-mutex: Fix the ww_acquire_ctx function annotations
(Bart Van Assche)
- Add lock context support in do_raw_{read,write}_trylock()
(Bart Van Assche)
- arm64, compiler-context-analysis: Permit alias analysis through
__READ_ONCE() with CONFIG_LTO=y (Marco Elver)
- Add __cond_releases() (Peter Zijlstra)
- Add context analysis for mutexes (Peter Zijlstra)
- Add context analysis for rtmutexes (Peter Zijlstra)
- Convert futexes to compiler context analysis (Peter Zijlstra)
Rust integration updates:
- Add atomic fetch_sub() implementation (Andreas Hindborg)
- Refactor various rust_helper_ methods for expansion (Boqun Feng)
- Add Atomic<*{mut,const} T> support (Boqun Feng)
- Add atomic operation helpers over raw pointers (Boqun Feng)
- Add performance-optimal Flag type for atomic booleans, to avoid
slow byte-sized RMWs on architectures that don't support them.
(FUJITA Tomonori)
- Misc cleanups and fixes (Andreas Hindborg, Boqun Feng,
FUJITA Tomonori)
LTO support updates:
- arm64: Optimize __READ_ONCE() with CONFIG_LTO=y (Marco Elver)
- compiler: Simplify generic RELOC_HIDE() (Marco Elver)
Miscellaneous fixes and cleanups by Peter Zijlstra, Randy Dunlap,
Thomas Weißschuh, Davidlohr Bueso and Mikhail Gavrilov.
Thanks,
Ingo
Could you consider this pull request for 7.1-rc1? No outstanding feature for this cycle and there are small random fixes as below. No potential merge conflict is observed. Thanks, Gao Xiang Changes since last update: - Validate xattr h_shared_count to report -EFSCORRUPTED explicitly for crafted images - Verify metadata accesses for file-backed mounts via rw_verify_area() - Fix FS_IOC_GETFSLABEL to include the trailing NUL byte, consistent with ext4 and xfs - Properly handle 48-bit on-disk blocks/uniaddr for extra devices - Fix an index underflow in the LZ4 in-place decompression that can cause out-of-bounds accesses with crafted images - Minor fixes and cleanups
Hi Linus,
Thanks,
Tzung-Bi
------
chrome-platform: Updates for v7.1
* Improvements
- Reduce transmission size by dropping unnecessary data in
cros_ec_lightbar.
- Convert chromeos_privacy_screen, chromeos_tbmc, and wilco_ec/event
from ACPI drivers to platform drivers.
* Fixes
- Drop wakeup source on remove() in chromeos_tbmc.
* Cleanups
- Simplify workqueue usage with devm in cros_usbpd_logger.
Modules changes for v7.1-rc1
Kernel symbol flags:
- Replace the separate *_gpl symbol sections (__ksymtab_gpl and
__kcrctab_gpl) with a unified symbol table and a new
__kflagstab section. This section stores symbol flags, such as
the GPL-only flag, as an 8-bit bitset for each exported symbol.
This is a cleanup that simplifies symbol lookup in the module
loader by avoiding table fragmentation and will allow a cleaner
way to add more flags later if needed.
Module signature UAPI:
- Move struct module_signature to the UAPI headers to allow reuse
by tools outside the kernel proper, such as kmod and
scripts/sign-file. This also renames a few constants for clarity
and drops unused signature types as preparation for hash-based
module integrity checking work that's in progress.
Sysfs:
- Add a /sys/module/<module>/import_ns sysfs attribute to show
the symbol namespaces imported by loaded modules. This makes it
easier to verify driver API access at runtime on systems that
care about such things (e.g. Android).
Cleanups and fixes:
- Force sh_addr to 0 for all sections in module.lds. This prevents
non-zero section addresses when linking modules with ld.bfd -r,
which confused elfutils.
- Fix a memory leak of charp module parameters on module unload
when the kernel is configured with CONFIG_SYSFS=3Dn.
- Override the -EEXIST error code returned by module_init() to
userspace. This prevents confusion with the errno reserved by
the module loader to indicate that a module is already loaded.
- Simplify the warning message and drop the stack dump on positive
returns from module_init().
- Drop unnecessary extern keywords from function declarations and
synchronize parse_args() arguments with their implementation.
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
This is exfat update pull request for v7.1-rc1. I add a description of Thanks! Description for this pull request: - Implement FALLOC_FL_ALLOCATE_RANGE to add support for preallocating clusters without zeroing, helping to reduce file fragmentation. - Add a unified block readahead helper for FAT chain conversion, bitmap allocation, and directory entry lookups. - Optimize exfat_chain_cont_cluster() by caching buffer heads to minimize mark_buffer_dirty() and mirroring overhead during NO_FAT_CHAIN to FAT_CHAIN conversion. - Switch to truncate_inode_pages_final() in evict_inode() to prevent BUG_ON caused by shadow entries during reclaim. - Fix a 32-bit truncation bug in directory entry calculations by ensuring proper bitwise coercion. - Fix sb->s_maxbytes calculation to correctly reflect the maximum possible volume size for a given cluster size, resolving xfstests generic/213. - Introduced exfat_cluster_walk() helper to traverse FAT chains by a specified step, handling both ALLOC_NO_FAT_CHAIN and ALLOC_FAT_CHAIN modes. - Introduced exfat_chain_advance() helper to advance an exfat_chain structure, updating both the current cluster and remaining size. - Remove dead assignments and fix Smatch warnings.
A busier cycle than I had expected for docs, including: - Translations: some overdue updates to the Japanese translations, Chinese translations for some of the Rust documentation, and the beginnings of a Portuguese translation. - New documents covering CPU isolation, managed interrupts, debugging Python gbb scripts, and more. - More tooling work from Mauro, reducing docs-build warnings, adding self tests, improving man-page output, bringing in a proper C tokenizer to replace (some of) the mess of kernel-doc regexes, and more. - Update and synchronize changes.rst and scripts/ver_linux, and put both into alphabetical order. ...and a long list of documentation updates, typo fixes, and general improvements. Expect a simple conflict with the Rust tree due to the sorting of Documentation/process/changes.rst.
Thanks,
Guenter
------
hwmon updates for 7.1
* New drivers:
- Add support for Lenovo Yoga/Legion fan monitoring (yogafan)
- Add support for LattePanda Sigma EC
- Add support for Infineon XDP720 eFuse
- Add support for Microchip MCP998X
* New device support:
- Add support for TI INA234
- Add support for Infineon XDPE1A2G5B/7B
- Add support for Renesas RAA228942 and RAA228943 (isl68137)
- Add support for Delta Q54SN120A1 and Q54SW120A7 (pmbus)
- Add support for TI TMP110 and TMP113 (tmp102)
- Add support for Sony APS-379 (pmbus)
- Add support for ITE IT8689E (it87)
- Add support for ASUS ROG STRIX Z790-H, X470-F, and CROSSHAIR X670E (asus-ec-sensors)
- Add support for GPD Win 5 (gpd-fan)
* Modernization and Cleanups:
- Convert asus_atk0110 and acpi_power_meter ACPI drivers to platform drivers
- Remove i2c_match_id() usage in many PMBus drivers
- Use guard() for mutex protection in pmbus_core
- Replace sprintf() with sysfs_emit() in ads7871, emc1403, max6650,
ads7828, max31722, and tc74
- Various markup and documentation improvements for yogafan and ltc4282
* Bug fixes:
- Fix use-after-free and missing usb_kill_urb on disconnect in powerz driver
- Avoid cacheline sharing for DMA buffer in powerz driver
- Fix integer overflow in power calculation on 32-bit in isl28022 driver
- Fix bugs in pt5161l_read_block_data()
- Propagate SPI errors and fix incorrect error codes in ads7871 driver
- Fix i2c_smbus_write_byte_data wrapper argument type in max31785 driver
* Device tree bindings:
- Convert npcm750-pwm-fan to DT schema
- Add bindings for Infineon XDP720, Microchip MCP998X, Sony APS-379,
Renesas RAA228942/3, Delta Q54SN120A1/7, XDPE1A2G5B/7B,
Aosong AHT10/20, DHT20, and TI INA234
- Adapt moortec,mr75203 bindings for T-Head TH1520
This includes two new helpers, tests improvements and new tests, the API usage cleanups, and random comments and docs fixes. All patches spent in -next for at least 2 weeks with no issues. Thanks, Yury bitmap updates for v7.1 - new API: bitmap_weight_from() and bitmap_weighted_xor() (Yury); - drop unused __find_nth_andnot_bit() (Yury); - new tests and test improvements (Andy, Akinobu, Yury); - fixes for count_zeroes API (Yury); - cleanup bitmap_print_to_pagebuf() mess (Yury); - comments and documentation updates (Andy, Kai, Kit).
nolibc changes for 7.1 Highlights: * Many new features and optimizations to printf(). * Rename non-standard symbols to avoid collisions with application code. * Support for byteswap.h, endian.h, err.h and asprintf(). * 64-bit dev_t. * Smaller cleanips and fixes to the code and build system.
please pull the latest timers/core branch from:
-04-12
Updates for the timer/timekeeping core:
- A rework of the hrtimer subsystem to reduce the overhead for frequently
armed timers, especially the hrtick scheduler timer.
- Better timer locality decision
- Simplification of the evaluation of the first expiry time by
keeping track of the neighbor timers in the RB-tree by providing a
RB-tree variant with neighbor links. That avoids walking the
RB-tree on removal to find the next expiry time, but even more
important allows to quickly evaluate whether a timer which is
rearmed changes the position in the RB-tree with the modified
expiry time or not. If not, the dequeue/enqueue sequence which both
can end up in rebalancing can be completely avoided.
- Deferred reprogramming of the underlying clock event device. This
optimizes for the situation where a hrtimer callback sets the need
resched bit. In that case the code attempts to defer the
re-programming of the clock event device up to the point where the
scheduler has picked the next task and has the next hrtick timer
armed. In case that there is no immediate reschedule or soft
interrupts have to be handled before reaching the reschedule point
in the interrupt entry code the clock event is reprogrammed in one
of those code paths to prevent that the timer becomes stale.
- Support for clocksource coupled clockevents
The TSC deadline timer is coupled to the TSC. The next event is
programmed in TSC time. Currently this is done by converting the
CLOCK_MONOTONIC based expiry value into a relative timeout,
converting it into TSC ticks, reading the TSC adding the delta
ticks and writing the deadline MSR.
As the timekeeping core has the conversion factors for the TSC
already, the whole back and forth conversion can be completely
avoided. The timekeeping core calculates the reverse conversion
factors from nanoseconds to TSC ticks and utilizes the base
timestamps of TSC and CLOCK_MONOTONIC which are updated once per
tick. This allows a direct conversion into the TSC deadline value
without reading the time and as a bonus keeps the deadline
conversion in sync with the TSC conversion factors, which are
updated by adjtimex() on systems with NTP/PTP enabled.
- Allow inlining of the clocksource read and clockevent write
functions when they are tiny enough, e.g. on x86 RDTSC and WRMSR.
With all those enhancements in place a hrtick enabled scheduler
provides the same performance as without hrtick. But also other hrtimer
users obviously benefit from these optimizations.
- Robustness improvements and cleanups of historical sins in the hrtimer
and timekeeping code.
- Rewrite of the clocksource watchdog.
The clocksource watchdog code has over time reached the state of an
impenetrable maze of duct tape and staples. The original design, which was
made in the context of systems far smaller than today, is based on the
assumption that the to be monitored clocksource (TSC) can be trivially
compared against a known to be stable clocksource (HPET/ACPI-PM timer).
Over the years this rather naive approach turned out to have major
flaws. Long delays between the watchdog invocations can cause wrap
arounds of the reference clocksource. The access to the reference
clocksource degrades on large multi-sockets systems dure to
interconnect congestion. This has been addressed with various
heuristics which degraded the accuracy of the watchdog to the point
that it fails to detect actual TSC problems on older hardware which
exposes slow inter CPU drifts due to firmware manipulating the TSC to
hide SMI time.
The rewrite addresses this by:
- Restricting the validation against the reference clocksource to the
boot CPU which is usually closest to the legacy block which
contains the reference clocksource (HPET/ACPI-PM).
- Do a round robin validation betwen the boot CPU and the other CPUs
based only on the TSC with an algorithm similar to the TSC
synchronization code during CPU hotplug.
- Being more leniant versus remote timeouts
- The usual tiny fixes, cleanups and enhancements all over the place
Thanks,
tglx
please pull the latest timers/vdso branch from:
-04-12
Update to the VDSO subsystem:
- Make the handling of compat functions consistent and more robust
- Rework the underlying data store so that it is dynamically
allocated, which allows the conversion of the last holdout SPARC64
to the generic VDSO implementation
- Rework the SPARC64 VDSO to utilize the generic implementation
- Mop up the left overs of the non-generic VDSO support in the core
code.
- Expand the VDSO selftest and make them more robust
- Allow time namespaces to be enabled independently of the generic
VDSO support, which was not possible before due to SPARC64 not
using it.
- Various cleanups and improvements in the related code.
Thanks,
tglx
please pull the latest irq/drivers branch from:
-04-12
nd_eic_interrupt in COMPILE_TEST
Updates for the interrupt chip driver subsystem:
- A large refactoring for the Renesas RZV2H driver to add new interrupt
types cleanly.
- A large refactoring for the Renesas RZG2L driver to add support the new
RZ/G3L variant.
- Add support for the new NXP S32N79 chip in the IMX irq-steer driver.
- Add support for the Apple AICv3 variant
- Enhance the Loongson PCH LPC driver so it can be used on MIPS with
device tree firmware
- Allow the PIC32 EVIC driver to be built independent of MIPS in compile
tests.
- The usual small fixes and enhancements all over the place
Thanks,
tglx
please pull the latest smp/core branch from:
-12
Updates for the SMP core code:
- Switch smp_call_on_cpu() to user system_percpu_wq instead of system_wq
a part of the ongoing workqueue restructuring
- Improve the CSD-lock diagnostics for smp_call_function_single() to
provide better debug mechanisms on weakly ordered systems.
- Cache the current CPU number once in smp_call_function*() instead of
retrieving it over and over.
- Add missing kernel-doc comments all over the place
Thanks,
tglx
please pull the latest irq/msi branch from: 12 si_msg() is missing A small update for the MSI interrupt library to check for callers which fail to provide the mandatory irq_write_msi_msg() callback, which prevents a NULL pointer dereference later. Thanks, tglx
please pull the latest core/debugobjects branch from: s-2026-04-12 A trivial update for debugobjects to drop a pointless likely() around IS_ERR_OR_NULL(). Thanks, tglx
please pull the latest core/entry branch from: 04-12 scall functions A trivial update for the entry code adding missing kernel documentation for function arguments. Thanks, tglx
please pull the latest irq/core branch from:
-12
sor callback sysvec
Update for the core interrupt subsystem:
- Invoke add_interrupt_randomness() in handle_percpu_devid_irq() and
cleanup the workaround in the Hyper-V driver, which would now invoke
it twice on ARM64. Removing it from the driver requires to add it to
the x86 system vector entry point.
- Remove the pointles cpu_read_lock() around reading CPU possible mask,
which is read only after init.
- Add documentation for the interaction between device tree bindings and
the interrupt type defines in irq.h.
- Delete stale defines in the matrix allocator and the equivalent in
loongarch.
Thanks,
tglx
Hi Linus,
please pull these changes to Kbuild and Kconfig for v7.1. Please let me
know if anything is incorrect and not matching your standards.
All changes have been in -next, most for several cycles without reported
problems.
Thanks and kind regards,
Nicolas
---
Kbuild/Kconfig updates for 7.1
Kbuild changes
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
* tools/build: Reject unexpected values for LLVM=3D
* kbuild: uapi: remove usage of toolchain headers
* kbuild: Switch from '-fms-extensions' to '-fms-anonymous-structs'
when available (currently: clang >=3D 23.0.0)
* kbuild: Reduce the number of compiler-generated suffixes for clang
thin-lto build
* kbuild: reduce output spam ("GEN Makefile") when building out of tree
* check-uapi: improve portability for testing headers
* uapi: also test UAPI headers against C++ compilers
* kbuild: vdso_install: drop build ID architecture allow-list
* checksyscalls: only run when necessary
* Documentation: kbuild: Update the debug information notes in
reproducible-builds.rst
* kconfig: forbid multiple entries with the same symbol in a choice
* kbuild: expand inlining hints with -fdiagnostics-show-inlining-chain
Kconfig changes
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
* kconfig: Error out on duplicated kconfig inclusion
Cc: Alexander Coffin <alex@cyberialabs.net>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Bill Wendling <morbo@google.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Dodji Seketeli <dodji@seketeli.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Helge Deller <deller@gmx.de>
Cc: John Moon <john@jmoon.dev>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Josh Poimboeuf <jpoimboe@kernel.org>
Cc: Justin Stitt <justinstitt@google.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <nick.desaulniers+lkml@gmail.com>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Cc: Song Liu <song@kernel.org>
Cc: Thomas Wei=DFschuh <linux@weissschuh.net>
Cc: Yonghong Song <yonghong.song@linux.dev>
Cc: kernel-team@fb.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-efi@vger.kernel.org
Cc: linux-hexagon@vger.kernel.org
Cc: linux-kbuild@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: llvm@lists.linux.dev
Cc: loongarch@lists.linux.dev
protected-headers="v1" From: Vignesh Raghavendra <vigneshr@ti.com> To: SoC <soc@kernel.org>, arm@kernel.org Cc: SoC list <soc@lists.linux.dev>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Tero Kristo <kristo@kernel.org>, "Nishanth, Menon" <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com> Message-ID: <6e294d61-9779-41ef-83f8-29f46fd98700@ti.com> Subject: [GIT PULL] arm64: dts: ti: k3: Late DT update for v7.1 --------------Ajo5ceQ3I866hKcfjqMcw114 Hi ARM SoC Maintainers, This contains a single patch that updates r5f remoteproc DT nodes, warran= ted by recent=20 binding update merged via remoteproc tree. TI K3 device tree updates for v7.1 part2 Late addition: - Use memory-region-names for r5f across K3 SoCs
Please git pull the following tag: xen: branch for v7.1-rc1 It contains: - a fix of an error path in drivers/xen/manage.c - a fix for the Xen console driver solving a boot hangup when the console backend isn't yet running - a comment fix in the Xen swiotlb driver - a hardening patch for Xen on Arm adding a more thorough validation - a cleanup of the Xen grant table code hiding suspend/resume code for the case if CONFIG_HIBERNATE_CALLBACKS isn't defined Thanks. Juergen
Hi Wolfram, here's the first part of the merge window pull request. It has the usual refactoring, cleanups and updates, with no big surprises. There is also some new hardware support. The main chunks this time are the xiic and rtl9300 work. One patch is already queued for part 2, as it needed some dependencies first and I will keep collecting patches with no major impact. Thanks and enjoy the rest of the weekend, Andi i2c-host for v7.1, part 1 - generic cleanups in npcm7xx, qcom-cci, xiic and designware DT bindings - atr: use kzalloc_flex for alias pool allocation - ixp4xx: convert bindings to DT schema - ocores: use read_poll_timeout_atomic() for polling waits - qcom-geni: skip extra TX DMA TRE for single read messages - s3c24xx: validate SMBus block length before using it - spacemit: refactor xfer path and add K1 PIO support - tegra: identify DVC and VI with SoC data variants - tegra: support SoC-specific register offsets - xiic: switch to devres and generic fw properties - xiic: skip input clock setup on non-OF systems rtl9300: - add per-SoC callbacks and clock support for RTL9607C - add support for new 50 kHz and 2.5 MHz bus speeds - general refactoring in preparation for RTL9607C support New support: - DesignWare GOOG5000 (ACPI HID) - Intel Nova Lake (ACPI ID) - Realtek RTL9607C - SpacemiT K3 binding - Tegra410 register layout support
- Migrate more hash algorithms from the traditional crypto subsystem
to lib/crypto/.
Like the algorithms migrated earlier (e.g. SHA-*), this simplifies
the implementations, improves performance, enables further
simplifications in calling code, and solves various other issues:
- AES CBC-based MACs (AES-CMAC, AES-XCBC-MAC, and AES-CBC-MAC)
- Support these algorithms in lib/crypto/ using the AES
library and the existing arm64 assembly code
- Reimplement the traditional crypto API's "cmac(aes)",
"xcbc(aes)", and "cbcmac(aes)" on top of the library
- Convert mac80211 to use the AES-CMAC library. Note: several
other subsystems can use it too and will be converted later
- Drop the broken, nonstandard, and likely unused support for
"xcbc(aes)" with key lengths other than 128 bits
- Enable optimizations by default
- GHASH
- Migrate the standalone GHASH code into lib/crypto/
- Integrate the GHASH code more closely with the very similar
POLYVAL code, and improve the generic GHASH implementation
to resist cache-timing attacks and use much less memory
- Reimplement the AES-GCM library and the "gcm" crypto_aead
template on top of the GHASH library. Remove "ghash" from
the crypto_shash API, as it's no longer needed
- Enable optimizations by default
- SM3
- Migrate the kernel's existing SM3 code into lib/crypto/, and
reimplement the traditional crypto API's "sm3" on top of it
- I don't recommend using SM3, but this cleanup is worthwhile
to organize the code the same way as other algorithms
- Testing improvements
- Add a KUnit test suite for each of the new library APIs
- Migrate the existing ChaCha20Poly1305 test to KUnit
- Make the KUnit all_tests.config enable all crypto library tests
- Move the test kconfig options to the Runtime Testing menu
- Other updates to arch-optimized crypto code
- Optimize SHA-256 for Zhaoxin CPUs using the Padlock Hash Engine
- Remove some MD5 implementations that are no longer worth keeping
- Drop big endian and voluntary preemption support from the arm64
code, as those configurations are no longer supported on arm64
- Make jitterentropy and samples/tsm-mr use the crypto library APIs
Note: the overall diffstat is neutral, but when the test code is
excluded it is significantly negative:
Tests: 13 files changed, 1982 insertions(+), 888 deletions(-)
Non-test: 141 files changed, 2897 insertions(+), 3987 deletions(-)
All: 154 files changed, 4879 insertions(+), 4875 deletions(-)
- Several improvements related to crc_kunit, to align with the standard KUnit conventions and make it easier for developers and CI systems to run this test suite - Add an arm64-optimized implementation of CRC64-NVME - Remove unused code for big endian arm64
- Various cleanups for the interface between fs/crypto/ and filesystems, from Christoph Hellwig - Simplify and optimize the implementation of v1 key derivation by using the AES library instead of the crypto_skcipher API
All commits have been in linux-next for at least five rounds; expect a mino=
r
conflict with the Rust tree due to the minimum compiler version bump.
A struct platform_device_info change and the addition of a conditional guar=
d for
the device lock have been shared with various trees through a signed tag; t=
he
Rust I/O register!() macro addition has been shared with the DRM tree.
A few late-cycle fixes still need some soak time in linux-next; please expe=
ct a
follow-up PR in the middle of the merge window.
- Danilo
Driver core changes for 7.1-rc1
- debugfs:
- Fix NULL pointer dereference in debugfs_create_str()
- Fix misplaced EXPORT_SYMBOL_GPL for debugfs_create_str()
- Fix soundwire debugfs NULL pointer dereference from uninitialized
firmware_file
- device property:
- Make fwnode flags modifications thread safe; widen the field to
unsigned long and use set_bit() / clear_bit() based accessors
- Document how to check for the property presence
- devres:
- Separate struct devres_node from its "subclasses" (struct devres,
struct devres_group); give struct devres_node its own release and
free callbacks for per-type dispatch
- Introduce struct devres_action for devres actions, avoiding the
ARCH_DMA_MINALIGN alignment overhead of struct devres
- Export struct devres_node and its init/add/remove/dbginfo
primitives for use by Rust Devres<T>
- Fix missing node debug info in devm_krealloc()
- Use guard(spinlock_irqsave) where applicable; consolidate unlock
paths in devres_release_group()
- driver_override:
- Convert PCI, WMI, vdpa, s390/cio, s390/ap, and fsl-mc to the
generic driver_override infrastructure, replacing per-bus
driver_override strings, sysfs attributes, and match logic; fixes
a potential UAF from unsynchronized access to driver_override in
bus match() callbacks
- Simplify __device_set_driver_override() logic
- kernfs:
- Send IN_DELETE_SELF and IN_IGNORED inotify events on kernfs
file and directory removal
- Add corresponding selftests for memcg
- platform:
- Allow attaching software nodes when creating platform devices via
a new 'swnode' field in struct platform_device_info
- Add kerneldoc for struct platform_device_info
- software node:
- Move software node initialization from postcore_initcall() to
driver_init(), making it available early in the boot process
- Move kernel_kobj initialization (ksysfs_init) earlier to support
the above
- Remove software_node_exit(); dead code in a built-in unit
- SoC:
- Introduce of_machine_read_compatible() and of_machine_read_model()
OF helpers and export soc_attr_read_machine() to replace direct
accesses to of_root from SoC drivers; also enables
CONFIG_COMPILE_TEST coverage for these drivers
- sysfs:
- Constify attribute group array pointers to
'const struct attribute_group *const *' in sysfs functions,
device_add_groups() / device_remove_groups(), and struct class
- Rust:
- Devres:
- Embed struct devres_node directly in Devres<T> instead of going
through devm_add_action(), avoiding the extra allocation and
the unnecessary ARCH_DMA_MINALIGN alignment
- I/O:
- Turn IoCapable from a marker trait into a functional trait
carrying the raw I/O accessor implementation (io_read /
io_write), providing working defaults for the per-type Io
methods
- Add RelaxedMmio wrapper type, making relaxed accessors usable
in code generic over the Io trait
- Remove overloaded per-type Io methods and per-backend macros
from Mmio and PCI ConfigSpace
- I/O (Register):
- Add IoLoc trait and generic read/write/update methods to the Io
trait, making I/O operations parameterizable by typed locations
- Add register! macro for defining hardware register types with
typed bitfield accessors backed by Bounded values; supports
direct, relative, and array register addressing
- Add write_reg() / try_write_reg() and LocatedRegister trait
- Update PCI sample driver to demonstrate the register! macro
Example:
```
register! {
/// UART control register.
CTRL(u32) @ 0x18 {
/// Receiver enable.
19:19 rx_enable =3D> bool;
/// Parity configuration.
14:13 parity ?=3D> Parity;
}
/// FIFO watermark and counter register.
WATER(u32) @ 0x2c {
/// Number of datawords in the receive FIFO.
26:24 rx_count;
/// RX interrupt threshold.
17:16 rx_water;
}
}
impl WATER {
fn rx_above_watermark(&self) -> bool {
self.rx_count() > self.rx_water()
}
}
fn init(bar: &pci::Bar<BAR0_SIZE>) {
let water =3D WATER::zeroed()
.with_const_rx_water::<1>(); // > 3 would not compile
bar.write_reg(water);
let ctrl =3D CTRL::zeroed()
.with_parity(Parity::Even)
.with_rx_enable(true);
bar.write_reg(ctrl);
}
fn handle_rx(bar: &pci::Bar<BAR0_SIZE>) {
if bar.read(WATER).rx_above_watermark() {
// drain the FIFO
}
}
fn set_parity(bar: &pci::Bar<BAR0_SIZE>, parity: Parity) {
bar.update(CTRL, |r| r.with_parity(parity));
}
```
- IRQ:
- Move 'static bounds from where clauses to trait declarations
for IRQ handler traits
- Misc:
- Enable the generic_arg_infer Rust feature
- Extend Bounded with shift operations, single-bit bool conversion,
and const get()
- Misc:
- Make deferred_probe_timeout default a Kconfig option
- Drop auxiliary_dev_pm_ops; the PM core falls back to driver PM
callbacks when no bus type PM ops are set
- Add conditional guard support for device_lock()
- Add ksysfs.c to the DRIVER CORE MAINTAINERS entry
- Fix kernel-doc warnings in base.h
- Fix stale reference to memory_block_add_nid() in documentation
There are some "fun" conflicts this time around between the "nested" pull request and kvm/master (RSM fixes, ugh), and a notable oddity: there are two versions of the "svm" pull request: a full version that includes a large set of SEV changes to fix locking bugs and then add a lockdep assertion to guard against similar bugs, and a short version without the SEV changes. I'm including the partial/short version as the SEV changes haven't gotten much soak time in -next, and (AFAIK) haven't been reviewed by anyone. I squeezed them into the initial pull request because the fixes are urgent enough to warrant inclusion in 7.1 no matter what, and the hardening changes largely fall into the category of "these either work or don't". I don't have a strong preference between taking the full version now versus waiting a ~week to give people more time to tell me what I broke. But I do really want to land the hardening sooner than later, e.g. see the rash of SEV+ bugs we've had...
This pull request contains fixes of syzbot reported issues in NILFS2 functionality. The DAT inode's btree node cache (i_assoc_inode) is initialized lazily during btree operations. However, nilfs_mdt_save_to_shadow_map() assumes i_assoc_inode is already initialized when copying dirty pages to the shadow map during GC. If NILFS_IOCTL_CLEAN_SEGMENTS is called immediately after mount before any btree operation has occurred on the DAT inode, i_assoc_inode is NULL leading to a general protection fault. Deepanshu Kartikey has fixed this by calling nilfs_attach_btree_node_cache() on the DAT inode in nilfs_dat_read() at mount time, ensuring i_assoc_inode is always initialized before any GC operation can use it. nilfs_ioctl_mark_blocks_dirty() uses bd_oblocknr to detect dead blocks by comparing it with the current block number bd_blocknr. If they differ, the block is considered dead and skipped. A corrupted ioctl request with bd_oblocknr set to 0 causes the comparison to incorrectly match when the lookup returns -ENOENT and sets bd_blocknr to 0, bypassing the dead block check and calling nilfs_bmap_mark() on a non- existent block. This causes nilfs_btree_do_lookup() to return -ENOENT, triggering the WARN_ON(ret =3D=3D -ENOENT). Deepanshu Kartikey has fixed this by rejecting ioctl requests with bd_oblocknr set to 0 at the beginning of each iteration. nilfs2 updates for v7.1 - nilfs2: reject zero bd_oblocknr in nilfs_ioctl_mark_blocks_dirty() - nilfs2: fix NULL i_assoc_inode dereference in nilfs_mdt_save_to_shadow_map
This pull request contains several fixes of syzbot reported issues and HFS+ fixes of xfstests failures. Deepanshu Kartikey has fixed a syzbot reported issue of a KMSAN uninit-value in hfsplus_strcasecmp(). The root cause is that hfs_brec_read() doesn't validate that the on-disk record size matches the expected size for the record type being read. The fix introduced hfsplus_brec_read_cat() wrapper that validates the record size based on the type field and returns -EIO if size doesn't match. Shardul Bankar has fixed a syzbot reported issue of processing corrupted HFS+ images where the b-tree allocation bitmap indicates that the header node (Node 0) is free. Node 0 must always be allocated. Violating this invariant leads to allocator corruption, which cascades into kernel panics or undefined behavior. Prevent trusting a corrupted allocator state by adding a validation check during hfs_btree_open(). If corruption is detected, print a warning identifying the specific corrupted tree and force the filesystem to mount read-only (SB_RDONLY). This prevents kernel panics from corrupted images while enabling data recovery. Zilin Guan has fixed a potential deadlock in hfsplus_fill_super(). hfsplus_fill_super() calls hfs_find_init() to initialize a search structure, which acquires tree->tree_lock. If the subsequent call to hfsplus_cat_build_key() fails, the function jumps to the out_put_root error label without releasing the lock. Fix this by adding the missing hfs_find_exit(&fd) call before jumping to the out_put_root error label. This ensures that tree->tree_lock is properly released on the error path. Yangtao Li has fixed the issue of not updating the change time after file change. The fix updates file's ctime after rename in hfsplus_rename(). The rest patches introduce the HFS+ fixes for the case of generic/348, generic/728, generic/533, generic/523, and generic/642 test-cases of xfstests suite. hfs/hfsplus updates for v7.1 - hfsplus: fix generic/642 failure - hfsplus: rework logic of map nodes creation in xattr b-tree - hfsplus: fix logic of alloc/free b-tree node - hfsplus: fix error processing issue in hfs_bmap_free() - hfsplus: fix potential race conditions in b-tree functionality - hfsplus: extract hidden directory search into a helper function - hfsplus: fix held lock freed on hfsplus_fill_super() - hfsplus: fix generic/523 test-case failure - hfsplus: validate b-tree node 0 bitmap at mount time - hfsplus: refactor b-tree map page access and add node-type validation - hfsplus: fix to update ctime after rename - hfsplus: fix generic/533 test-case failure - hfsplus: set ctime after setxattr and removexattr - hfsplus: fix uninit-value by validating catalog record size - hfsplus: fix potential Allocation File corruption after fsync
This is the next round of the Rust support.
The biggest "user facing" change is the bump of the minimum Rust version
to follow Debian Stable as we discussed in the Maintainers Summit and
LPC etc.
This carries the two back merges that we discussed -- I have both at the
top of the PR, in case I did something wrong and so that they were
easy to spot. I also merged first the one with the newest base, so that
the second one was obvious. I explained what happened in the merge
commit and used the "temporary merge first" to get the right diffstat
and merge log.
I also talked to my submaintainers so that they know they should avoid
back merges in general. By the way, Tamir has sent me his first PR for
rust-analyzer this cycle, which is included here.
No conflicts expected at this time, but linux-next should generally have
the right resolutions. "Thanks" to the back merge, one of the
conceptually (not mechanically) tricky ones is already solved [1].
All commits have been in linux-next for 3 rounds or more.
Link: https://lore.kernel.org/linux-next/CANiq72kdxB=W3_CV1U44oOK3SssztPo2wLDZt6LP94TEO+Kj4g@mail.gmail.com/ [1]
Cheers,
Miguel
Rust changes for v7.1
Toolchain and infrastructure:
- Bump the minimum Rust version to 1.85.0 (and 'bindgen' to 0.71.1).
As proposed in LPC 2025 and the Maintainers Summit [1], we are going
to follow Debian Stable's Rust versions as our minimum versions.
Debian Trixie was released on 2025-08-09 with a Rust 1.85.0 and
'bindgen' 0.71.1 toolchain, which is a fair amount of time for e.g.
kernel developers to upgrade.
Other major distributions support a Rust version that is high enough
as well, including:
+ Arch Linux.
+ Fedora Linux.
+ Gentoo Linux.
+ Nix.
+ openSUSE Slowroll and openSUSE Tumbleweed.
+ Ubuntu 25.10 and 26.04 LTS. In addition, 24.04 LTS using
their versioned packages.
The merged patch series comes with the associated cleanups and
simplifications treewide that can be performed thanks to both bumps,
as well as documentation updates.
In addition, start using 'bindgen''s '--with-attribute-custom-enum'
feature to set the 'cfi_encoding' attribute for the 'lru_status' enum
used in Binder.
Link: https://lwn.net/Articles/1050174/ [1]
- Add experimental Kconfig option ('CONFIG_RUST_INLINE_HELPERS') that
inlines C helpers into Rust.
Essentially, it performs a step similar to LTO, but just for the
helpers, i.e. very local and fast.
It relies on 'llvm-link' and its '--internalize' flag, and requires
a compatible LLVM between Clang and 'rustc' (i.e. same major version,
'CONFIG_RUSTC_CLANG_LLVM_COMPATIBLE'). It is only enabled for two
architectures for now.
The result is a measurable speedup in different workloads that
different users have tested. For instance, for the null block driver,
it amounts to a 2%.
- Support global per-version flags.
While we already have per-version flags in many places, we didn't
have a place to set global ones that depend on the compiler version,
i.e. in 'rust_common_flags', which sometimes is needed to e.g. tweak
the lints set per version.
Use that to allow the 'clippy::precedence' lint for Rust < 1.86.0,
since it had a change in behavior.
- Support overriding the crate name and apply it to Rust Binder, which
wanted the module to be called 'rust_binder'.
- Add the remaining '__rust_helper' annotations (started in the
previous cycle).
'kernel' crate:
- Introduce the 'const_assert!' macro: a more powerful version of
'static_assert!' that can refer to generics inside functions or
implementation bodies, e.g.:
fn f<const N: usize>() {
const_assert!(N > 1);
}
fn g<T>() {
const_assert!(size_of::<T>() > 0, "T cannot be ZST");
}
In addition, reorganize our set of build-time assertion macros
('{build,const,static_assert}!') to live in the 'build_assert'
module.
Finally, improve the docs as well to clarify how these are different
from one another and how to pick the right one to use, and their
equivalence (if any) to the existing C ones for extra clarity.
- 'sizes' module: add 'SizeConstants' trait.
This gives us typed 'SZ_*' constants (avoiding casts) for use in
device address spaces where the address width depends on the hardware
(e.g. 32-bit MMIO windows, 64-bit GPU framebuffers, etc.), e.g.:
let gpu_heap = 14 * u64::SZ_1M;
let mmio_window = u32::SZ_16M;
- 'clk' module: implement 'Send' and 'Sync' for 'Clk' and thus simplify
the users in Tyr and PWM.
- 'ptr' module: add 'const_align_up'.
- 'str' module: improve the documentation of the 'c_str!' macro to
explain that one should only use it for non-literal cases (for the
other case we instead use C string literals, e.g. 'c"abc"').
- Disallow the use of 'CStr::{as_ptr,from_ptr}' and clean one such use
in the 'task' module.
- 'sync' module: finish the move of 'ARef' and 'AlwaysRefCounted'
outside of the 'types' module, i.e. update the last remaining
instances and finally remove the re-exports.
- 'error' module: clarify that 'from_err_ptr' can return 'Ok(NULL)',
including runtime-tested examples.
The intention is to hopefully prevent UB that assumes the result of
the function is not 'NULL' if successful. This originated from a case
of UB I noticed in 'regulator' that created a 'NonNull' on it.
Timekeeping:
- Expand the example section in the 'HrTimer' documentation.
- Mark the 'ClockSource' trait as unsafe to ensure valid values for
'ktime_get()'.
- Add 'Delta::from_nanos()'.
'pin-init' crate:
- Replace the 'Zeroable' impls for 'Option<NonZero*>' with impls of
'ZeroableOption' for 'NonZero*'.
- Improve feature gate handling for unstable features.
- Declutter the documentation of implementations of 'Zeroable' for
tuples.
- Replace uses of 'addr_of[_mut]!' with '&raw [mut]'.
rust-analyzer:
- Add type annotations to 'generate_rust_analyzer.py'.
- Add support for scripts written in Rust ('generate_rust_target.rs',
'rustdoc_test_builder.rs', 'rustdoc_test_gen.rs').
- Refactor 'generate_rust_analyzer.py' to explicitly identify host and
target crates, improve readability, and reduce duplication.
And some other fixes, cleanups and improvements.
Hi Thomas, - Added the DT bindings for the compatible string 'fsl,imx25-epit' (Frank Li) - Made the rttm_cs variable static for the rtl otto timer driver (Krzysztof Kozlowski) - Fixed error return code handling in the sun5i timer driver (Chen Ni) - Made the timer-of and the mmio code compatible with modules (Daniel Lezcano)
This is the batch of pull requests for the v7.1 merge window. This cycle has several new features and a good amount of infrastructure work. There are three new clone3() flags for pidfd-based process lifecycle management. CLONE_AUTOREAP makes a child auto-reap on exit without becoming a zombie. Unlike SA_NOCLDWAIT or SIG_IGN on SIGCHLD this is a per-process property on the child, not a parent-scoped setting affecting all children. The flag survives reparenting so subreaper or init won't need to deal with it. CLONE_NNP sets no_new_privs on the child at clone time, allowing the parent to impose it without affecting itself. CLONE_PIDFD_AUTOKILL ties a child's lifetime to the pidfd returned from clone3() - when the last reference to that struct file is closed the kernel sends SIGKILL to the child. This is useful for container runtimes, service managers, and sandboxed subprocess execution where the child must die if the parent crashes. CLONE_PIDFD_AUTOKILL requires both CLONE_PIDFD and CLONE_AUTOREAP. The pidfd_info struct also gains a coredump_code field. The mount namespace work introduces FSMOUNT_NAMESPACE for fsmount() which creates a new mount namespace with the newly created filesystem attached, returning a namespace fd instead of an O_PATH mount fd. This accompanies last cycle's OPEN_TREE_NAMESPACE and is especially useful when mounting a real filesystem to serve as a container rootfs. Also new is support for creating empty mount namespaces via CLONE_EMPTY_MNTNS for clone3() and UNSHARE_EMPTY_MNTNS for unshare(). These create a namespace containing only a single nullfs root mount with an immutable empty directory. The intended workflow is to mount a real filesystem over the root and build the mount table from scratch, which avoids copying and tearing down the entire parent mount tree. MOVE_MOUNT_BENEATH is extended to target the caller's rootfs and to transfer the MNT_LOCKED property from the top mount to the mount beneath. This allows safely modifying an inherited mount table after unprivileged namespace creation via unshare(CLONE_NEWUSER | CLONE_NEWNS) and makes it possible to switch out the rootfs without pivot_root(2). The simple_xattr subsystem is reworked from an rbtree protected by a reader-writer spinlock to an rhashtable with RCU-based lockless reads. All consumers (shmem, kernfs, pidfs) are converted and the rbtree code is removed. On top of this, user.* extended attributes are now supported on sockets. Sockfs sockets get per-inode limits of 128 xattrs and 128KB total value size. The practical motivation comes from systemd and GNOME expanding their use of Varlink as an IPC mechanism - with user.* xattrs a service can label its socket with the IPC protocol it speaks and eBPF programs can selectively capture traffic on those sockets. The inode->i_ino field is widened from unsigned long to u64. This is a treewide change affecting format strings and tracepoints across 222 files. On 64-bit hosts this makes no material difference but it eliminates the 32-bit hashing hacks various filesystems had to use. Filesystem-level T10 protection information support is added. The existing block layer PI code is refactored to be reusable and wired up through iomap into XFS. This increases read performance up to 15% for 4k I/O compared to the automatic below-the-covers block layer approach. The metadata buffer_head tracking accumulated in struct address_space over the years is cleaned up and moved into filesystem-private inode structures. The private_list, private_data, and private_lock fields are removed from struct address_space, saving 3 longs in struct inode for the vast majority of inodes. The audit subsystem's excessive dput/dget calls during context setup and reset are addressed by adding a pool of extra fs->pwd references to fs_struct. This avoids the spinlock contention on the pwd dentry lock that was causing noticeable performance regressions on systems with many CPUs doing open/close with audit enabled. The directory locking centralization continues. The remaining places where explicit inode_lock(), lock_rename(), or similar are used outside the core VFS are converted to use the start_creating/start_removing/ start_renaming interfaces. The biggest changes are in overlayfs, with smaller conversions in cachefiles, nfsd, apparmor, and selinux. lock_rename(), lock_rename_child(), and unlock_rename() are unexported. The writeback subsystem gets new helper APIs and f2fs, gfs2, and nfs are converted to stop accessing writeback internals directly. Smaller items include namespace helper macros (FOR_EACH_NS_TYPE(), CLONE_NS_ALL), FAT timestamp conversion KUnit tests, removal of unused fs_context infrastructure now that the conversion is finished, a fix for architecture-specific compat_ftruncate64 enforcing the non-LFS file size limit, trivial ->setattr rename cleanups, dcache bucket count fixes, mbcache shrink work ordering fix, omfs superblock validation, a coredump tracepoint, dirent_size() helper, scoped user access conversion, runtime const for file/bfile caches, and permitting dynamic_dname()s up to NAME_MAX. Thanks! Christian
This goes early because I will be traveling next week. thermal-7.1-rc1 Merge tag 'thermal-v7.1-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux thermal: core: Fix thermal zone device registration error path to receive thermal control updates for 7.1-rc1. These include thermal core fixes and simplifications, driver fixes and new hardware support (SDM670, Eliza SoC), new driver features (hwmon support in imx91, DDR data rate on Nova Lake in int340x), and a handful of cleanups: - Fix thermal core issues related to thermal zone removal and registration errors that may lead to a use-after-free or a memory leak in some cases (Rafael Wysocki) - Drop a redundant check from thermal_zone_device_update(), adjust thermal workqueue allocation flags, and switch over thermal_class allocation to static (Rafael Wysocki) - Relocate the suspend and resume of thermal zones closer to the suspend and resume of devices, respectively (Rafael Wysocki) - Remove a pointless variable used in the thermal core when registering a cooling device (Daniel Lezcano) - Replace sprintf() in thermal_bind_cdev_to_trip() and use str_enabled_disabled() helper in mode_show() (Thorsten Blum) - Replace cpumask_weight() in intel_hfi_offline() with cpumask_empty() which is generally more efficient (Yury Norov) - Add support for reading DDR data rate from PCI config space on Nova Lake platforms to the int340x thermal driver (Srinivas Pandruvada) - Add an OF node address to output message to make sensor names more distinguishable (Alexander Stein) - Add hwmon support for the i.MX97 thermal sensor (Alexander Stein) - Clamp correctly the results when doing value/temperature conversion in the Spreadtrum driver (Thorsten Blum) - Add SDM670 compatible DT bindings for the Tsens and the lMH thermal drivers (Richard Acayan) - Add SM8750 compatible DT bindings for the Tsens thermal driver (Manaf Meethalavalappu Pallikunhi) - Add Eliza SoC compatible DT bindings for the Tsens driver (Krzysztof Kozlowski) - Fix inverted condition check on error in the Spear thermal control driver (Gopi Krishna Menon) - Convert DT bindings documentation into DT schema (Gopi Krishna Menon) - Use max() macro to increase readability in the Broadcom STB thermal sensor (Thorsten Blum) - Remove a stale @trim_offset kernel-doc entry (John Madieu) Thanks!
This goes early because I will be traveling next week. acpi-7.1-rc1 Merge branch 'acpi-apei' Linux 7.0-rc7 to receive ACPI support updates for 7.1-rc1. These include an update of the CMOS RTC driver and the related ACPI and x86 code that, among other things, switches it over to using the platform device interface for device binding on x86 instead of the PNP device driver interface (which allows the code in question to be simplified quite a bit), a major update of the ACPI Time and Alarm Device (TAD) driver adding an RTC class device interface to it, and updates of core ACPI drivers that remove some unnecessary and not really useful code from them. Apart from that, two drivers are converted to using the platform driver interface for device binding instead of the ACPI driver one, which is slated for removal, support for the Performance Limited register is added to the ACPI CPPC library and there are some janitorial updates of it and the related cpufreq CPPC driver, the ACPI processor driver is fixed and cleaned up, and NVIDIA vendor CPER record handler is added to the APEI GHES code. Also, the interface for obtaining a CPU UID from ACPI is consolidated across architectures and used for fixing a problem with the PCI TPH Steering Tag on ARM64, there are two updates related to ACPICA, a minor ACPI OS Services Layer (OSL) update, and a few assorted updates related to ACPI tables parsing. Specifics: - Update maintainers information regarding ACPICA (Rafael Wysocki) - Replace strncpy() with strscpy_pad() in acpi_ut_safe_strncpy() (Kees Cook) - Trigger an ordered system power off after encountering a fatal error operator in AML (Armin Wolf) - Enable ACPI FPDT parsing on LoongArch (Xi Ruoyao) - Remove the temporary stop-gap acpi_pptt_cache_v1_full structure from the ACPI PPTT parser (Ben Horgan) - Add support for exposing ACPI FPDT subtables FBPT and S3PT (Nate DeSimone) - Address multiple assorted issues and clean up the code in the ACPI processor idle driver (Huisong Li) - Replace strlcat() in the ACPI processor idle drive with a better alternative (Andy Shevchenko) - Rearrange and clean up acpi_processor_errata_piix4() (Rafael Wysocki) - Move reference performance to capabilities and fix an uninitialized variable in the ACPI CPPC library (Pengjie Zhang) - Add support for the Performance Limited Register to the ACPI CPPC library (Sumit Gupta) - Add cppc_get_perf() API to read performance controls, extend cppc_set_epp_perf() for FFH/SystemMemory, and make the ACPI CPPC library warn on missing mandatory DESIRED_PERF register (Sumit Gupta) - Modify the cpufreq CPPC driver to update MIN_PERF/MAX_PERF in target callbacks to allow it to control performance bounds via standard scaling_min_freq and scaling_max_freq sysfs attributes and add sysfs documentation for the Performance Limited Register to it (Sumit Gupta) - Add ACPI support to the platform device interface in the CMOS RTC driver, make the ACPI core device enumeration code create a platform device for the CMOS RTC, and drop CMOS RTC PNP device support (Rafael Wysocki) - Consolidate the x86-specific CMOS RTC handling with the ACPI TAD driver and clean up the CMOS RTC ACPI address space handler (Rafael Wysocki) - Enable ACPI alarm in the CMOS RTC driver if advertised in ACPI FADT and allow that driver to work without a dedicated IRQ if the ACPI alarm is used (Rafael Wysocki) - Clean up the ACPI TAD driver in various ways and add an RTC class device interface, including both the RTC setting/reading and alarm timer support, to it (Rafael Wysocki) - Clean up the ACPI AC and ACPI PAD (processor aggregator device) drivers (Rafael Wysocki) - Rework checking for duplicate video bus devices and consolidate pnp.bus_id workarounds handling in the ACPI video bus driver (Rafael Wysocki) - Update the ACPI core device drivers to stop setting acpi_device_name() unnecessarily (Rafael Wysocki) - Rearrange code using acpi_device_class() in the ACPI core device drivers and update them to stop setting acpi_device_class() unnecessarily (Rafael Wysocki) - Define ACPI_AC_CLASS in one place (Rafael Wysocki) - Convert the ni903x_wdt watchdog driver and the xen ACPI PAD driver to bind to platform devices instead of ACPI devices (Rafael Wysocki) - Add devm_ghes_register_vendor_record_notifier(), use it in the PCI hisi driver, and Add NVIDIA vendor CPER record handler (Kai-Heng Feng) - Consolidate the interface for obtaining a CPU UID from ACPI across architectures and use it to address incorrect PCI TPH Steering Tag on ARM64 resulting from the invalid assumption that the ACPI Processor UID would always be the same as the corresponding logical CPU ID in Linux (Chengwen Feng) Thanks!
This goes early because I will be traveling next week. pm-7.1-rc1 Merge branch 'pm-devfreq' Linux 7.0-rc7 to receive power management updates for 7.1-rc1. Once again, cpufreq is the most active development area, mostly because of the new feature additions and documentation updates in the amd-pstate driver, but there are also changes in the cpufreq core related to boost support and other assorted updates elsewhere. Next up are power capping changes due to the major cleanup of the Intel RAPL driver. On the cpuidle front, a new C-states table for Intel Panther Lake is added to the intel_idle driver, the stopped tick handling in the menu and teo governors is updated, and there are a couple of cleanups. Apart from the above, support for Tegra114 is added to devfreq and there are assorted cleanups of that code, there are also two updates of the operating performance points (OPP) library, two minor updates related to hibernation, and cpupower utility man pages updates and cleanups. Specifics: - Update qcom-hw DT bindings to include Eliza hardware (Abel Vesa) - Update cpufreq-dt-platdev blocklist (Faruque Ansari) - Minor updates to driver and dt-bindings for Tegra (Thierry Reding, Rosen Penev) - Add MAINTAINERS entry for CPPC driver (Viresh Kumar) - Add support for new features: CPPC performance priority, Dynamic EPP, Raw EPP, and new unit tests for them to amd-pstate (Gautham Shenoy, Mario Limonciello) - Fix sysfs files being present when HW missing and broken/outdated documentation in the amd-pstate driver (Ninad Naik, Gautham Shenoy) - Pass the policy to cpufreq_driver->adjust_perf() to avoid using cpufreq_cpu_get() in the .adjust_perf() callback in amd-pstate which leads to a scheduling-while-atomic bug (K Prateek Nayak) - Clean up dead code in Kconfig for cpufreq (Julian Braha) - Remove max_freq_req update for pre-existing cpufreq policy and add a boost_freq_req QoS request to save the boost constraint instead of overwriting the last scaling_max_freq constraint (Pierre Gondois) - Embed cpufreq QoS freq_req objects in cpufreq policy so they all are allocated in one go along with the policy to simplify lifetime rules and avoid error handling issues (Viresh Kumar) - Use DMI max speed when CPPC is unavailable in the acpi-cpufreq scaling driver (Henry Tseng) - Switch policy_is_shared() in cpufreq to using cpumask_nth() instead of cpumask_weight() because the former is more efficient (Yury Norov) - Use sysfs_emit() in sysfs show functions for cpufreq governor attributes (Thorsten Blum) - Update intel_pstate to stop returning an error when "off" is written to its status sysfs attribute while the driver is already off (Fabio De Francesco) - Include current frequency in the debug message printed by __cpufreq_driver_target() (Pengjie Zhang) - Refine stopped tick handling in the menu cpuidle governor and rearrange stopped tick handling in the teo cpuidle governor (Rafael Wysocki) - Add Panther Lake C-states table to the intel_idle driver (Artem Bityutskiy) - Clean up dead dependencies on CPU_IDLE in Kconfig (Julian Braha) - Simplify cpuidle_register_device() with guard() (Huisong Li) - Use performance level if available to distinguish between rates in OPP debugfs (Manivannan Sadhasivam) - Fix scoped_guard in dev_pm_opp_xlate_required_opp() (Viresh Kumar) - Return -ENODATA if the snapshot image is not loaded (Alberto Garcia) - Remove inclusion of crypto/hash.h from hibernate_64.c on x86 (Eric Biggers) - Clean up and rearrange the intel_rapl power capping driver to make the respective interface drivers (TPMI, MSR, and MMOI) hold their own settings and primitives and consolidate PL4 and PMU support flags into rapl_defaults (Kuppuswamy Sathyanarayanan) - Correct kernel-doc function parameter names in the power capping core code (Randy Dunlap) - Remove unneeded casting for HZ_PER_KHZ in devfreq (Andy Shevchenko) - Use _visible attribute to replace create/remove_sysfs_files() in devfreq (Pengjie Zhang) - Add Tegra114 support to activity monitor device in tegra30-devfreq as a preparation to upcoming EMC controller support (Svyatoslav Ryhel) - Fix mistakes in cpupower man pages, add the boost and epp options to the cpupower-frequency-info man page, and add the perf-bias option to the cpupower-info man page (Roberto Ricci) - Remove unnecessary extern declarations from getopt.h in arguments parsing functions in cpufreq-set, cpuidle-info, cpuidle-set, cpupower-info, and cpupower-set utilities (Kaushlendra Kumar) Thanks!
Chinese translation docs for 7.1
This is the Chinese translation subtree for 7.1. It includes
the following changes:
- Add the rust docs translation
- Fix an inconsistent statement in dev-tools/testing-overview
- sync process/2.Process.rst with English version
Above patches are tested by 'make htmldocs'
Signed-off-by: Alex Shi <alexs@kernel.org>
USB serial updates for 7.1-rc1 Here are the USB serial updates for 7.1-rc1, including: - use strscpy() instead of strcpy() - new modem device id All have been in linux-next with no reported issues.
LoongArch KVM changes for v7.1 1. Use CSR_CRMD_PLV in kvm_arch_vcpu_in_kernel(). 2. Let vcpu_is_preempted() a macro & some enhanments. 3. Add DMSINTC irqchip in kernel support. 4. Add KVM PMU test cases for tools/selftests.
I'll be OoO next week and disconnected so I'm sending an early PR for the next cycle. For this release we have an extension of the pwrseq-pcie-m2 driver with support for PCIe M.2 Key E connectors. The rest of the commits in the PR fulfill a supporting role: document the hardware in DT bindings, provide required serdev helpers (this has been provided in an immutable branch to Rob Herring so you may see it in his PR as well) and is followed up by some Kconfig fixes from Arnd. Please consider pulling for v7.1-rc1. Thanks, Bartosz power sequencing updates for v7.1-rc1 - add support for the PCIe M.2 Key E connectors in pwrseq-pcie-m2 - describe PCIe M.2 Mechanical Key E connectors in DT bindings - add serdev helpers for looking up devices by OF nodes - minor serdev core rework to enable support for PCIe M.2 Key E connectors
I'll be OoO next week and disconnected so I'm sending an early PR for the next cycle. For this merge window we have two new drivers: support for GPIO-signalled ACPI events on Intel platforms and a generic GPIO-over-pinctrl driver using the ARM SCMI protocol for controlling pins. Several things have been reworked in GPIO core: we unduplicated GPIO hog handling, reduced the number of SRCU locks and dereferences, improved support for software-node-based lookup and removed more legacy code after converting remaining users to modern alternatives. There's also a number of driver reworks and refactoring, documentation updates, some bug-fixes and new tests. The merges in this PR are as follows: immutable branch provided to the net tree with driver changes prerequisite to legacy code removal, pinctrl changes pulled ahead of adding the SCMI GPIO driver and an immutable branch with a high-risk GPIO core fix that was then pulled into the for-current branch and sent for v7.0 after spending some time in linux-next with no regressions. Details are in the signed tag. Please consider pulling for v7.1-rc1. Thanks, Bartosz gpio updates for v7.1-rc1 GPIO core: - defer probe on software node lookups when the remote software node exists but has not been registered as a firmware node yet - unify GPIO hog handling by moving code duplicated in OF and ACPI modules into GPIO core and allow setting up hogs with software nodes - allow matching GPIO controllers by secondary firmware node if matching by primary does not succeed - demote deferral warnings to debug level as they are quite normal when using software nodes which don't support fw_devlink yet - disable the legacy GPIO character device uAPI v1 supprt in Kconfig by default - rework several core functions in preparation for the upcoming Revocable helper library for protecting resources against sudden removal, this reduces the number of SRCU dereferences in GPIO core - simplify file descriptor logic in GPIO character device code by using FD_PREPARE() - introduce a header defining symbols used by both GPIO consumers and providers to avoid having to include provider-specific headers from drivers which only consume GPIOs - replace snprintf() with strscpy() where formatting is not required New drivers: - add the gpio-by-pinctrl generic driver using the ARM SCMI protocol to control GPIOs (along with SCMI changes pulled from the pinctrl tree) - add a driver providing support for handling of platform events via GPIO-signalled ACPI events (used on Intel Nova Lake and later platforms) Driver changes: - extend the gpio-kempld driver with support for more recent models, interrupts and setting/getting multiple values at once - improve interrupt handling in gpio-brcmstb - add support for multi-SoC systems in gpio-tegra186 - make sure we return correct values from the .get() callbacks in several GPIO drivers by normalizing any values other than 0, 1 or negative error numbers - use flexible arrays in several drivers to reduce the number of required memory allocations - simplify synchronous waiting for virtual drivers to probe and remove the dedicated, a bit overengineered helper library dev-sync-probe - remove unneeded Kconfig dependencies on OF_GPIO in several drivers and subsystems - convert the two remaining users of of_get_named_gpio() to using GPIO descriptors and remove the (no longer used) function along with the header that declares it - add missing includes in gpio-mmio - shrink and simplify code in gpio-max732x by using guard(mutex) - remove duplicated code handling the 'ngpios' property from gpio-ts4800, it's already handled in GPIO core - use correct variable type in gpio-aspeed - add support for a new model in gpio-realtek-otto - allow to specify the active-low setting of simulated hogs over the configfs interface (in addition to existing devicetree support) in gpio-sim Bug fixes: - clear the OF_POPULATED flag on hog nodes in GPIO chip remove path on OF systems - fix resource leaks in error path in gpiochip_add_data_with_key() - drop redundant device reference in gpio-mpsse Tests: - add selftests for use-after-free cases in GPIO character device code DT bindings: - add a DT binding document for SCMI based, gpio-over-pinctrl devices - fix interrupt description in microchip,mpfs-gpio - add new compatible for gpio-realtek-otto - describe the resets of the mpfs-gpio controller - fix maintainer's email in gpio-delay bindings - remove the binding document for cavium,thunder-8890 as the corresponding device is bound over PCI and not firmware nodes Documentation: - update the recommended way of converting legacy boards to using software nodes for GPIO description - describe GPIO line value semantics - misc updates to kerneldocs Misc: - convert OMAP1 ams-delta board to using GPIO hogs described with software nodes
Hi,
please pull the following btrfs updates. Thanks.
User visible changes:
- move shutdown ioctl support out of experimental features, a forced stop
of filesystem operation until the next unmount; additionally there's a
super block operation to forcibly remove a device from under the
filesystem that could lead to a shutdown or not if the redundancy allows
that
- report filesystem shutdown using fserror mechanism
- tree-checker updates:
- verify free space info, extent and bitmap items
- verify remap-tree items and related data in block group items
Performance improvements:
- speed up clearing first extent in the tracked range (+10% throughput on
sample workload)
- reduce COW rewrites of extent buffers during the same transaction
- avoid taking big device lock to update device stats during transaction
commit
- fix unnecessary flush on close when truncating empty files (observed
in practice on a backup application)
- prevent direct reclaim during compressed readahead to avoid stalls
under memory pressure
Notable fixes:
- fix chunk allocation strategy on RAID1-like block groups with
disproportionate device sizes, this could lead to ENOSPC due to skewed
reservation estimates
- adjust metadata reservation overcommit ratio to be less aggressive and
also try to flush if possible, this avoids ENOSPC and potential
transaction aborts in some edge cases (that are otherwise hard to
reproduce)
- fix silent IO error in encoded writes and ordered extent split in zoned
mode, the error was not correctly propagated to the address space and
could lead to zeroed ranges
- don't mark inline files NOCOMPRESS unexpectedly, the intent was to do
that for single block writes of regular files
- fix deadlock between reflink and transaction commit when using
flushoncommit
- fix overly strict item check of a running dev-replace operation
Core:
- zoned mode space reservation fixes:
- cap delayed refs metadata reservation to avoid overcommit
- update logic to reclaim partially unusable zones
- add another state to flush and reclaim partially used zone
- limit number of zones reclaimed in one go to avoid blocking other
operations
- don't let log trees consume global reserve on overcommit and fall back
to transaction commit
- revalidate extent buffer when checking its up-to-date status
- add self tests for zoned mode block group specifics
- reduce atomic allocations in some qgroup paths
- avoid unnecessary root node COW during snapshotting
- start new transaction in block group relocation conditionally
- faster check of NOCOW files on currently snapshotted root
- change how compressed bio size is tracked from bio and reduce the
structure size
- new tracepoint for search slot restart tracking
- checksum list manipulation improvements
- type, parameter cleanups, refactoring
- error handling improvements, transaction abort call adjustments
Hi Rafael, - Added an OF node address to output message to make sensor names more distinguishable (Alexander Stein) - Added hwmon support for the i.MX97 thermal sensor (Alexander Stein) - Clamped correctly the results when doing value/temperature conversion in the Spreadtrum driver (Thorsten Blum) - Added the SDM670 compatible DT bindings for the Tsens and the lMH drivers (Richard Acayan) - Added the SM8750 compatible DT bindings for the Tsens (Manaf Meethalavalappu Pallikunhi) - Added the Eliza SoC compatible DT bindings for the Tsens (Krzysztof Kozlowski) - Fixed inverted condition check on error in the Spear driver (Gopi Krishna Menon) - Converted the DT bindings documentation into DT schema (Gopi Krishna Menon) - Used max() macro to increase readibility in the Broadcom STB thermal sensor (Thorsten Blum) - Removed stale @trim_offset kernel-doc entry (John Madieu)
Hi, This PR adds a new Landlock access right for pathname UNIX domain sockets thanks to a new LSM hook, and a few fixes. with your master branch. Kernel changes have been tested in the latest linux-next releases for some weeks, and since this week for the LOG_SUBDOMAINS_OFF fixes. Test coverage for security/landlock is 91.1% of 2152 lines according to LLVM 21, and it was 91.0% of 2105 lines before this PR. Regards, Mickaël -- Landlock update for v7.1-rc1
Samsung SoC clock drivers changes for v7.1 1. Axis ARTPEC-9: Add new PLL clocks and new drivers for eight clock controllers on the SoC. 2. ExynosAutov920: Add G3D (GPU) clock controller. 3. Exynos850: Define missing clock for the APM mailbox. 4. Few compiler warning fixes cleanups.
Hi Greg Please find the updates for CoreSight self-hosted tracing subsystem targeting v7.1 Kindly pull, Suzuki coresight: Updates for Linux v7.1 CoreSight self hosted tracing subsystem updates for Linux v7.1, includes: - Fix unregistration related issues - Clean up CTI power management and sysfs code - Miscellaneous fixes - MAINTAINERS: Add Leo Yan as Reviewer - MAINTAINERS: Update Mike's email address Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Hi Dave and Sima,
All changes have been in linux-next for two rounds -- no conflicts expected=
.
- Danilo
DRM Rust changes for v7.1-rc1 (2nd)
Nova (Core):
- Don't create intermediate (mutable) references to the whole command
queue buffer, which is potential undefined behavior.
- Add missing padding to the falcon firmware DMA buffer to prevent DMA
transfers going out of range of the DMA buffer.
- Actually set the default values in the bitfield Default
implementation.
- Use u32::from_le_bytes() instead of manual bit shifts to parse the
PCI ROM header.
- Fix a missing colon in the SEC2 boot debug message.
Hi Joerg, The following remaining change is ready for v7.1-rc1. It aims to: - Simplify calculate_psi_aligned_address() This patch was originally included in the v1 pull request but was removed due to an issue identified during review. This has now been fixed, and the patch is ready for iommu/vt-d. Please consider it for inclusion. Best regards, baolu
Hi Rafael, - Fixes errors in cpupower-frequency-info short option names to its manpage. - Fixes cpupower-idle-info perf option name to its manpage. - Adds boost and epp options to cpupower-frequency-info to its manpage. - Adds description for perf-bias option to cpupower-info to its manpage. - Removes unnecessary extern declarations from getopt.h in arguments parsing functions in cpufreq-set, cpuidle-info, cpuidle-set, cpupower-info, and cpupower-set utilities. These functions are defined getopt.h file. diff is attached. thanks, -- Shuah linux-cpupower-7.1-rc1 - Fixes errors in cpupower-frequency-info short option names to its manpage. - Fixes cpupower-idle-info perf option name to its manpage. - Adds boost and epp options to cpupower-frequency-info to its manpage. - Adds description for perf-bias option to cpupower-info to its manpage. - Removes unnecessary extern declarations from getopt.h in arguments parsing functions in cpufreq-set, cpuidle-info, cpuidle-set, cpupower-info, and cpupower-set utilities. These functions are defined getopt.h file.
This is the pull request with interconnect changes for the v7.1-rc1 merge window. As always, the summary is in the signed tag. All patches have been tested in the last few linux-next releases. There possible. Thanks, Georgi This pull request contains the interconnect changes for the 7.1-rc1 merge window. They are listed below: - New driver for Mahua SoC - New driver for Eliza SoC - Enable QoS support for QCS8300 and QCS615 SoCs - Add L3 cache scaling compatibles for SM8550 and Eliza SoCs - Fix multiple issues in the msm8974 driver - Fix kfree mismatch - Misc cleanups - Add maintainer entry for the interconnect KUnit tests Signed-off-by: Georgi Djakov <djakov@kernel.org>
Hey folks, Thanks, Conor. RISC-V soc drivers for v7.1 Microchip: Add coverage for the pic64gx in the system controller and syscons. Add a interrupt mux driver (akin to the one that Renesas recently added) that fixes a problem where the platform never properly modelled gpio interrupts. There's a gpio driver change here that Bartosz has acked that adds the interrupt support to the GPIO driver itself. Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Hey folks, Realised as I was tagging this that the tsu clock and gpio interrupts changes miss the pic64gx and should have been rebased. I'll send another PR later this week I think, with those two fixes. Nothing is broken by the two fixes, they just didn't fix the newly added dts, which is why I still feel comfortable sending this, particularly given I am pretty late already. My excuse is that I was sick all last week... Cheers, Conor. RISC-V devicetrees for v7.1 Generic: Add binding coverage for Supm. Microchip: Add support for the picgx64 and its curiosity board. This is a PolarFire SoC without the FPGA. Add the missing tsu_clk for ptp on the macb on PolarFire SoC and resolve a long-running problem with gpio interrupts being incorrectly described on the platform. Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Dear Rafael, This is devfreq-next pull request. I add detailed description of following updates. Best Regards, Chanwoo Choi Update devfreq next for v7.1 Detailed description for this pull request: - Remove unneeded casting for HZ_PER_KHZ on devfreq.c - Use _visible attribute to replace create/remove_sysfs_files() to fix sysfs attribute race conditions on devfreq.c - Add support for Tegra114 activity monitor device on tegra30-devfreq.c
Dear Greg, This is extcon-next pull request. I add detailed description of I'm sorry that I did not send the separate fixes pull request. This pull request does not contain any problematic patches according to your comment. Best Regards, Chanwoo Choi Update extcon next for v7.1 Detailed description for this pull request: - Fix sysfs duplicate filename issue on extcon core : Adjust ida_free timing after device_unregister to prevent duplicate filename error when re-allocating id - Update NXP PTN5150 extcon driver and dt-binding document : Handle pending IRQ events during system resume : Allow "connector" node to present in devicetree : Add Type-C orientation switch support to correctly set orientation of multiplexer according to CC status : Support USB role switch via connector fwnode - Replace use of system_wq with system_percpu_wq on int3496 driver - Make typec-power-opmode optional on usbc-tusb320 driver : Prevent probe error when usb-c connector is configured in the DT without "typec-power-opmode" property
From: Yixun Lan <dlan@gentoo.org> Hi Arnd, Yixun Lan RISC-V SpacemiT DT changes for 7.1 For K3 SoC - Add I2C support - Add PMIC regulator tree - Add ethernet support - Add pinctrl/GPIO/Clock - Enable full UART support For K1 SoC On Milk-V Jupiter - Enable PCIe/USB on - Enable QSPI/SPI NOR - Enable EEPROM, LEDs Others - Fix PMIC supply properties - Fix PCIe missing power regulator
i.MX clock changes for 7.1 - Add optional ENET reference pad clock inputs for i.MX6Q/UL. - Fix debug output in PLL14xx driver to use unsigned format specifier. - Add 333.333 MHz and 477.4 MHz support to fracn-gppll for display use cases. - Fix device node reference leaks in i.MX6 driver. - Fix device node reference leak in of_assigned_ldb_sels(). - Fix ACM clock flags on i.MX8 to prevent SAI sysclk failures. - Move VF610_CLK_END define into the driver. - Add VF610 Ethernet switch clock support. - Correct CSI PHY parent clock selection on i.MX8MQ.
protected-headers="v1" From: Vignesh Raghavendra <vigneshr@ti.com> To: SoC <soc@kernel.org>, arm@kernel.org Cc: SoC list <soc@lists.linux.dev>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Tero Kristo <kristo@kernel.org>, Nishanth Menon <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com> Message-ID: <e724f95d-09d0-4ede-9ed4-0ce782d81058@ti.com> Subject: [GIT PULL 1/2] arm64: dts: ti: K3 updates for v7.1 --------------oAW5J7hdI1PCiXsPU00w0Ax0 Hi ARM SoC maintainers Note there is a patch touching embedded-controller/kontron,sl28cpld.yaml = as it is part of=20 series that removes of Kontron SMARC-sAM67 board support. TI K3 device tree updates for v7.1 Generic Fixes/Cleanups: - k3-pinctrl: Cleanup alignment and reorder macros - ti,min-output-impedance addition to all K3 board DT files SoC Specific Features and Fixes: AM62L: - Add RNG node - Support cpufreq scaling J721S2: - Make MAIN domain system control bus a simple-bus - Add second DSI node J722S: - Add main_i2c4 device node J7200: - Make MAIN domain system control bus a simple-bus Board Specific Features and Fixes: AM642 EVM: - Add ICSSG0 overlay for dual EMAC support AM62: - LP-SK: Enable internal pulls for MMC0 data pins - SK: Enable Main UART wakeup - phycore-som: Add 128MiB of global CMA - Verdin: Add Zinnia board support and misc cleanup AM62A7-SK: - Enable Main UART wakeup - Fix pin name in comment from M19 to N22 AM62D2 EVM: - Enable Main UART wakeup and set wakeup-source system-states AM62L3 EVM: - Disable MMC1 internal pulls on data pins - Enable Main UART wakeup and enable wkup_uart0 pins/target node AM62P: - SK: Disable MMC1 internal pulls on data pins and enable Main UART wakeup - Verdin: Add Zinnia support and misc cleanup AM68 PHYBoard: - Add DSI->LVDS bridge, LVDS-Display overlay and PEB-AV-15 overlay AM69 Aquila: - Fix DP regulator enable GPIO J721S2 CPB: - Add QSPI flash partition details Removal of SMARC-sAM67 board: - Kontron SMARC-sAM67 board support along with all bindings are dropped as board is no longer planned for production
Steve, rv changes for v7.1 (for-next) Summary of changes: - Refactor da_monitor header to share handlers across monitor types No functional changes, only less code duplication. - Add Hybrid Automata model class Add a new model class that extends deterministic automata by adding constraints on transitions and states. Those constraints can take into account wall-clock time and as such allow RV monitor to make assertions on real time. Add documentation and code generation scripts. - Add stall monitor as hybrid automaton example Add a monitor that triggers a violation when a task is stalling as an example of automaton working with real time variables. - Convert the opid monitor to a hybrid automaton The opid monitor can be heavily simplified if written as a hybrid automaton: instead of tracking preempt and interrupt enable/disable events, it can just run constraints on the preemption/interrupt states when events like wakeup and need_resched verify. - Add support for per-object monitors in DA/HA Allow writing deterministic and hybrid automata monitors for generic objects (e.g. any struct), by exploiting a hash table where objects are saved. This allows to track more than just tasks in RV. For instance it will be used to track deadline entities in deadline monitors. - Add deadline tracepoints and move some deadline utilities Prepare the ground for deadline monitors by defining events and exporting helpers. - Add nomiss deadline monitor Add first example of deadline monitor asserting all entities complete before their deadline. - Improve rvgen error handling Introduce AutomataError exception class and better handle expected exceptions while showing a backtrace for unexpected ones. - Improve python code quality in rvgen Refactor the rvgen generation scripts to align with python best practices: use f-strings instead of %, use len() instead of __len__(), remove semicolons, use context managers for file operations, fix whitespace violations, extract magic strings into constants, remove unused imports and methods. - Fix small bugs in rvgen The generator scripts presented some corner case bugs: logical error in validating what a correct dot file looks like, fix an isinstance() check, enforce a dot file has an initial state, fix type annotations and typos in comments. - rvgen refactoring Refactor automata.py to use iterator-based parsing and handle required arguments directly in argparse. - Allow epoll in rtapp-sleep monitor The epoll_wait call is now rt-friendly so it should be allowed in the sleep monitor as a valid sleep method.
Once the merge window opens, please pull the following RCU changes for v7.1. RCU changes for v7.1 NOCB CPU management: - Consolidate rcu_nocb_cpu_offload() and rcu_nocb_cpu_deoffload() to reduce code duplication. - Extract nocb_bypass_needs_flush() helper to reduce duplication in NOCB bypass path. rcutorture/torture infrastructure: - Add NOCB01 config for RCU_LAZY torture testing. - Add NOCB02 config for NOCB poll mode testing. - Add TRIVIAL-PREEMPT config for textbook-style preemptible RCU torture. - Test call_srcu() with preemption both disabled and enabled. - Remove kvm-check-branches.sh in favor of kvm-series.sh. - Make hangs more visible in torture.sh output. - Add informative message for tests without a recheck file. - Fix numeric test comparison in srcu_lockdep.sh. - Use torture_shutdown_init() in refscale and rcuscale instead of open-coded shutdown functions. - Fix modulo-zero error in torture_hrtimeout_ns(). SRCU: - Fix SRCU read flavor macro comments. - Fix s/they disables/they disable/ typo in srcu_read_unlock_fast(). RCU Tasks: - Document that RCU Tasks Trace grace periods now imply RCU grace periods. - Remove unnecessary smp_store_release() in cblist_init_generic(). RCU stall: - Add BOOTPARAM_RCU_STALL_PANIC Kconfig option to allow triggering a kernel panic on RCU stall via kernel boot parameter.
Hi Miguel, This is a small one, various cleanups and small improvements with no major changes to users of pin-init. I summarized the changes in the my sync series [1]: > This cycle we have no big changes in pin-init. This series is a > collection of smaller improvements already merged upstream: > > - https://github.com/Rust-for-Linux/pin-init/pull/105 > - https://github.com/Rust-for-Linux/pin-init/pull/110 > - https://github.com/Rust-for-Linux/pin-init/pull/101 > - https://github.com/Rust-for-Linux/pin-init/pull/102 > - https://github.com/Rust-for-Linux/pin-init/pull/108 > > Next cycle might contain bigger changes, mainly support for tuple > structs. And I'm also thinking of already starting with integrating > zerocopy. > > While testing for the kernel, I noticed the following issue (already > fixed in the patch in this series): > > - https://github.com/Rust-for-Linux/pin-init/pull/123 > > This cycle we also had some unsoundness fixes that are already in rc4: > > - https://github.com/Rust-for-Linux/pin-init/pull/111 > - https://github.com/Rust-for-Linux/pin-init/pull/117 > > Lastly, there were some upstream-only changes: > > - https://github.com/Rust-for-Linux/pin-init/pull/114 > - https://github.com/Rust-for-Linux/pin-init/pull/109 All commits have been in linux-next since Thursday last week. No conflicts expected. Cheers, Benno [1]: https://lore.kernel.org/all/20260319093542.3756606-1-lossin@kernel.org pin-init changes for v7.1 Changed: - Replace the 'Zeroable' impls for 'Option<NonZero*>' with impls of 'ZeroableOption' for 'NonZero*'. - Improve feature gate handling for unstable features. - Declutter the documentation of implementations of 'Zeroable' for tuples. - Replace uses of 'addr_of[_mut]!' with '&raw [mut]'.
Hi Rob! power sequencing updates for the M.2 driver. Thanks Bartosz Immutable branch between the pwrseq and serdev trees for v7.1-rc1 Provide new serdev helper for looking up controllers by their OF node to be used in the power sequencing driver for the PCIe M.2 connector.
Hi Dave and Sima,
There's quite a lot of stuff in here this time. The highlights are GPU budd=
y
and GEM shmem abstractions on the DRM core side; RPC continuation records, =
the
missing Turing pieces, exposed GSP log buffers in debugfs, and lots of gene=
ral
refactorings and improvements on the nova-core side.
Among the latter I want to highlight the generic kernel register!() macro a=
nd
the DMA improvements.
There are also quite a few external dependencies in here. Besides a few Rus=
t
core and minor workqueue changes, I took all the DMA changes through this t=
ree
for this cycle and merged a shared signed tag from the driver-core tree for
register!() and other I/O improvements.
(I plan to send an early driver-core PR to Linus for this cycle, since I al=
so
gave out two other signed tags for other trees.)
All changes have been in linux-next for at least one round -- no conflicts
expected.
- Danilo
DRM Rust changes for v7.1-rc1
- DMA:
- Rework the DMA coherent API: introduce Coherent<T> as a generalized
container for arbitrary types, replacing the slice-only
CoherentAllocation<T>. Add CoherentBox for memory initialization
before exposing a buffer to hardware (converting to Coherent when
ready), and CoherentHandle for allocations without kernel mapping.
- Add Coherent::init() / init_with_attrs() for one-shot initialization
via pin-init, and from-slice constructors for both Coherent and
CoherentBox
- Add uaccess write_dma() for copying from DMA buffers to userspace
and BinaryWriter support for Coherent<T>
- DRM:
- Add GPU buddy allocator abstraction
- Add DRM shmem GEM helper abstraction
- Allow drm::Device to dispatch work and delayed work items to driver
private data
- Add impl_aref_for_gem_obj!() macro to reduce GEM refcount
boilerplate, and introduce DriverObject::Args for constructor
context
- Add dma_resv_lock helper and raw_dma_resv() accessor on GEM objects
- Clean up imports across the DRM module
- I/O:
- Merged via a signed tag from the driver-core tree: register!() macro
and I/O infrastructure improvements (IoCapable refactor, RelaxedMmio
wrapper, IoLoc trait, generic accessors, write_reg /
LocatedRegister)
- Nova (Core):
- Fix and harden the GSP command queue: correct write pointer
advancing, empty slot handling, and ring buffer indexing; add mutex
locking and make Cmdq a pinned type; distinguish wait vs no-wait
commands
- Add support for large RPCs via continuation records, splitting
oversized commands across multiple queue slots
- Simplify GSP sequencer and message handling code: remove unused
trait and Display impls, derive Debug and Zeroable where applicable,
warn on unconsumed message data
- Refactor Falcon firmware handling: create DMA objects lazily, add
PIO upload support, and use the Generic Bootloader to boot FWSEC on
Turing
- Convert all register definitions (PMC, PBUS, PFB, GC6, FUSE, PDISP,
Falcon) to the kernel register!() macro; add bounded_enum macro to
define enums usable as register fields
- Migrate all DMA usage to the new Coherent, CoherentBox, and
CoherentHandle APIs
- Harden firmware parsing with checked arithmetic throughout FWSEC,
Booter, RISC-V parsing paths
- Add debugfs support for reading GSP-RM log buffers; replace
module_pci_driver!() with explicit module init to support
module-level debugfs setup
- Fix auxiliary device registration for multi-GPU systems
- Various cleanups: import style, firmware parsing refactoring,
framebuffer size logging
- Rust:
- Add interop::list module providing a C linked list interface
- Extend num::Bounded with shift operations, into_bool(), and const
get() to support register bitfield manipulation
- Enable the generic_arg_infer Rust feature and add EMSGSIZE error
code
- Tyr:
- Adopt vertical import style per kernel Rust guidelines
- Clarify driver/device type names and use DRM device type alias
consistently across the driver
- Fix GPU model/version decoding in GpuInfo
- Workqueue:
- Add ARef<T> support for work and delayed work
Two minor improvements that weren't ready when I sent the originall pull request. They have now been tested in next. No problem if it is too late for this cycle. Thanks, Drew T-HEAD Devicetrees for 7.1, part 2 Additional updates to T-Head device trees for v7.1: - Enable the display pipeline for the TH1520-based BeagleV Ahead board by adding the HDMI connector node, connecting it to the HDMI controller, and activating the DPU and HDMI nodes. - Add coefficients to the TH1520 PVT node as the values in the TH1520 manual differ from the defaults in the driver.
Steven, please pull the following changes for RTLA (more info in tag description). Thanks, Tomas RTLA patches for v7.1 - Simplify option parsing Auto-generate getopt_long() optstring for short options from long options array, avoiding the need to specify it manually and reducing the surface for mistakes. - Add unit tests Implement unit tests (make unit-tests) using libcheck, next to existing runtime tests (make check). Currently, three functions from utils.c are tested. - Add --stack-format option In addition to stopping stack pointer decoding (with -s/--stack option) on first unresolvable pointer, allow also skipping unresolvable pointers and displaying everything, configurable with a new option. - Unify number of CPUs into one global variable Use one global variable, nr_cpus, to store the number of CPUs instead of retrieving it and passing it at multiple places. - Fix behavior in various corner cases Make RTLA behave correctly in several corner cases: memory allocation failure, invalid value read from kernel side, thread creation failure, malformed time value input, and read/write failure or interruption by signal. - Improve string handling Simplify several places in the code that handle strings, including parsing of action arguments. A few new helper functions and variables are added for that purpose. - Get rid of magic numbers Few places handling paths use a magic number of 1024. Replace it with MAX_PATH and ARRAY_SIZE() macro. - Unify threshold handling Code that handles response to latency threshold is duplicated between tools, which has led to bugs in the past. Unify it into a new helper as much as possible. - Fix segfault on SIGINT during cleanup The SIGINT handler touches dynamically allocated memory. Detach it before freeing it during cleanup to prevent segmentation fault and discarding of output buffers. Also, properly document SIGINT handling while at it. The tag was tested (make && make check && make unit-tests) as well as pre-tested on top of next-20260326. There are no known conflicts. Signed-off-by: Tomas Glozar <tglozar@redhat.com>
Thanks, Jens OP-TEE update for 7.1 Simplify TEE implementor ID match logic
Thanks, Jens TEE update for 7.1 Clean up tee_core.h kernel-doc to eliminate build warnings
Just the one Nuvoton devicetree change for v7.1 Andrew nuvoton: first batch of arm64 devicetree changes for v7.1 Just the one change this time, dropping syscon properties where they weren'= t defined.
Here's the first batch of ASPEED devicetree changes for v7.1. Cheers, Andrew aspeed: first batch of devicetree changes for v7.1 New platforms: - Asus Kommando IPMI card - Asrock Paul IPMI card Updated platforms: - Anacapa (Meta): NFC and EEPROMs - MSX4 (Nvidia): 128M layout for the alternate boot flash
Memory controller drivers for v7.1 1. TegraMC: - Few fixes for older issues - missing clock on Tegra264, missing enabling of DLL for Tegra30 and Tegra124. - Simplify the code in a few places. - Rework handling interrupts on different variants and add support for error logging on Tegra 264. 2. Drop Baikal SoC bt1-l2-ctl driver, because SoC support is being removed tree-wide.
Samsung SoC drivers for v7.1 Few cleanups in ACPM firmware drivers, used on Google GS101 and newer Samsung Exynos SoCs. Notable change is removing 'const' in 'struct acpm_handle' pointers, because even though the code does not modify pointed data, it immediately drops the const via cast. Also code is not logically readable when a reference getters/putters (e.g. acpm_handle_put()) take a pointer to const, because the meaning of "get" and "put" implies changing the memory, even if that changeable field is outside of pointed data.
Hi Stephen, This pull request introduces support for the Tenstorrent Atlantis RISC-V SoC in the form of a clk driver, reset driver and the associated DT binding. The reset driver was reviewed by Philipp, who agreed that it could go via the clk tree. Brian reviewed the clk driver but there is no review/ack from you. Please let me know if you'd like to see any changes and we will post a new revision. clk: tenstorrent: Add support for Atlantis PRCM Introduce support for the clock and reset controllers (e.g. PRCM) in the Tenstorrent Atlantis SoC. 5 types of clocks are generated by the PRCM: PLLs, shared gates and standard muxes. The reset controller is setup as an auxiliary device of the clock controller. Signed-off-by: Drew Fustini <fustini@kernel.org>
T-HEAD Devicetrees for 7.1 Update the T-Head TH1520 RISC-V SoC device tree to support the Verisilicon DC8200 display controller (called DPU in manual) and the Synopsys DesignWare HDMI TX controller. In addition, enable HDMI output for the LicheePi 4a board. Signed-off-by: Drew Fustini <fustini@kernel.org>
Hi Stephen, Here's a pull for some fixes and improvements for the clk subsystem that's been posted over the last month. Details are in the signed git tag. I didn't include any new drivers, or changes where it looks like there is a submaintainer that typically sends you a pull separately. Improvements to the clk core - Add support for clk spread spectrum, which reduces electromagnetic interference (EMI) by modulating the clk frequency a small amount to spread the energy across a wider bandwidth. The SCMI clk driver uses this new functionality. (Peng Fan) - Introduced the CLK_ROUNDING_NOOP flag, which is for the case where the determine_rate op is an empty function. This typically occurs when rounding is managed by firmware or the clock is capable of any rate. Nine clk drivers were updated to use this new flag: rp1, scpi, hisilicon/hi3660-stub, imx/clk-scu, qcom/clk-rpm, qcom/clk-rpmh, qcom/clk-smd-rpm, samsung/clk-acpm, sprd/pll. (Brian Masney) - Added kernel docs for all members of struct clk_core. (Brian Masney) - Simplify clk_is_match() and improve readability. (Geert Uytterhoeven) Remove deprecated APIs (all Brian Masney) - Converts clk-composite from round_rate() to determine_rate(). - Removes the round_rate() clk op. - Removes the deprecated functions divider_round_rate(), divider_round_rate_parent(), and divider_ro_round_rate_parent() since these are just wrappers for the corresponding determine_rate variant. KUnit Tests - Add tests for clk lookup by name. (Chen-Yu Tsai) - Introduced kunit tests for spread spectrum. (Peng Fan) - Minor cleanup to use HZ_PER_MHZ. (Brian Masney) Driver-specific updates not listed above - The SCMI driver gained support for OEM extensions. (Peng Fan) - Dropped the baikal-t1 SoC that will not be finalized / supported. (Andy Shevchenko) - Minor bug fixes / cleanups to various drivers across the clk tree: aspeed/ast2700 (Felix Gu), x86/lpss-atom (Andy Shevchenko), hisilicon/reset (Shawn Guo), hisilicon (J. Neuschäfer), xgene (Geert Uytterhoeven), mvebu/armada-37xx-periph (Ben Dooks), imx/scu (Brian Masney).
Jakub, convert the remaining users of of_gpio.h under drivers/nfc and the last one removes the - now unused - header. Thanks, Bartosz Immutable branch between GPIO and net Convert remaining users of of_gpio.h to using GPIO descriptors and remove the header.
Hi Peter, Major changes are the atomic pointer support and a boolean-like AtomicFlag type (using a byte if arch support efficient xchg/cmpxchg over bytes otherwise 4 bytes). Thanks! Regards, Boqun Rust atomic changes for v7.1 * Add Atomic<ptr> support. * Add an AtomicFlag type for boolean-like usage with architecture-specific performance optimization. * Add unsafe atomic operations over raw pointers. * Add `fetch_sub()` for atomic types. * Documentation and example improvements. -----BEGIN PGP SIGNATURE----- iQFFBAABCAAvFiEEj5IosQTPz8XU1wRHSXnow7UH+rgFAmmnPU0RHGJvcXVuQGtl cm5lbC5vcmcACgkQSXnow7UH+rgKrgf/UNZb0CmIG7d2jN1GsTHwYa8disAGlWFk KOSTMNn83WICVhIIqUqrRcvSzR0FLwpp1jOH0lMYzZlfxQBOIoVc82xXD2SLLjAa 2VS/vknOitxAsChFceKs7w+hcQD168xSbDqo/dSxI/KO+OMQUxLqTW0zKTVYZhij JIfv57Nv1331J+gnwici6/q3cBqP14Hv968cZ5Dw8tqWJMpMuqJPQLsgKg5um6Y0 hzpgXLkkB8Vg02qku/YdkcBFCvxWz5CifOpmLWNum+B82emELHmKhpOUdticuWof iUkqygu4Un+QAcKb+8LG3L30UW3GBw4kEHpb357jc/EqZHvhX5aEYg== =CYTx -----END PGP SIGNATURE-----