Here is the RTC subsystem pull request for 7.4. A way to lift the hctosys limit for 32-bit system is introduced to ensure systems relying on it can pass Y2038. A driver for the Raspberry Pi 5 RTC is added and support for the Abracon abx81x, Ricoh R2223x, Renesas R-Car X5H and Allwinner B288 RTCs is added in existing drivers. I still need to review multiple sets of LLM generated fixes that have been sent, I will probably send in a fixes PR after -rc1. RTC for 7.4 Subsystem: - the hctosys limit for 32bit platforms is now configurable - introduce lock guard for for rtc_device.ops_lock - use sysfs_emit() instead of sprintf() were possible - selftest fixes New driver: - Raspberry Pi 5 RTC Drivers: - abx80x: add support for ABX81X - bd70528: properly enable wakeup - cmos: Fix ACPI RTC alarm handling - ds1685: power-off fixes - mt6397: add nvmem support - pcf85063: add HW UIE support - rs5c372: Ricoh R2223x support - rzn1: add R-Car X5H support - s35390a: allow use of output pin for interrupt signal 1 for wakealarm to support synology devices - sun6i: add Allwinner B288 support
thanks! Len Brown, Intel Open Source Technology Center power utilities 2026.10.31 turbostat 2026.10.31 Fix --cpu option to work more than once. Fix --Joules option to work with --show power. Remove hard-coded 8192-CPU limit. Decode Uncore Frequency Agent Types. Dump RDT (Resource Director Technology) config. Dump RP (Resource Priority) config. Recognize Rugged Panther Lake. Fix PMT mmap size, bounds check, and mask computation. Misc cleanups and minor fixes. x86_energy_perf_policy 2026.10.31 Harden input parsing and bounds checks. Fix optarg keyword matching. Rewrite MSR device path discovery. Misc cleanups and minor fixes.
Please consider pulling, updating machines, sorry about previous message without the needed urls... Best regards, - Arnaldo perf tools changes for v7.4 - Support instruction tracking on arm64 for data type profiling, resolving stack, global, per-CPU and 'current' variable accesses, so that 'perf annotate --data-type' resolves types on arm64 the way it does on x86. - Port the Python scripts to the perf module and standalone execution, and improve the module: lazy sample callchains and event copies, GIL handling, better session/thread lookup, new treport, flamegraph and sqlite/postgres exporters. - Reenable and fix the attribute expectation test suite: per-PMU bit masks, other core PMUs' events, dummy tracking events, group checks and spelled out skip reasons. - perf trace: filter the target's tasks in BPF, open the BPF output event on every CPU, add an option to disable syscall augmentation and raise TRACE_AUG_MAX_BUF. - perf jitdump: harden record parsing, validating unwinding sizes and symbol names, byte-swapping debug entries via safe accessors and fixing frees on error paths. - perf annotate-data fixes: bound the member nesting recursion, resolve type DIEs in the debug file they came from, adjust the offset for flex-arrays and show the sample count in the data-type browser. - perf symbol and debug info: try linked debug files for DSOs, avoid repeated failing searches, set binary/symtab types for split kallsyms, JIT maps and the build-id cache, fix libbfd symbol loading. - perf config: serialize config file access with a mutex, add the DEFINE_MUTEX() and DO_ONCE() primitives and a robust process shared mutex, add the core.hybrid-merge option. - perf report: add --progress and --no-progress options. - perf mem: add a false sharing workload to 'perf test', request PERF_SAMPLE_CPU by default, use the IBS swfilt filter when available and decode L0 in the memory level. - perf test: take turns using the perf mlock budget in the mmaping tests, add the 'needs_mlock' suite flag, scope the probe based tests to their PID and make more tests non-exclusive. - perf vendor events intel: update events and metrics to TMA 5.2, refresh the event tables and fix umask encodings. - perf build: run shellcheck, mypy and pylint in parallel, make pylint opt-out with NO_PYLINT=1, fix clean and install dependencies. - Add a script and a 'make sync-headers' target to sync the tools/ copies of kernel headers with the kernel sources, plus the resulting syncs of the cpufeatures, KVM, fs, mount, fcntl, socket, rtnetlink, if_addr and sound headers. - Fix cs-etm HW_ID mapping synthesis for raw trace, queue teardown leaks and duplicate v0 global mappings. - Add a 'perf bench atomic' benchmark for atomic operations. - Filter events before creating lock_stat in 'perf lock contention'. - Add a 'perf test' case for events re-armed with PERF_EVENT_IOC_REFRESH. - Fix memory leaks on 'perf c2c' output fields and add function view stdio coverage to its test. - Fix a NULL dereference resolving callchains in 'perf machine'. - Optimize the libdw fallback when DWARF is missing and try the symbol file first when checking for debuginfo. - Don't call eprintf() in pr_debugN() when not verbose. - Don't delete cumulative caller entries before the stat_acc decays in 'perf report'. - Fix ring buffer cursor handling: keep the consumed cursor in forward mode and use the head selected by read_init. - Fix 'perf test mmap-basic' user rdpmc detection and only test userspace reading on supported platforms. - Build fixes: include sys/types.h for ssize_t, errno.h before kernel headers and fix jevents.py type annotations for mypy 2.x. Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
before the merge window closes. Adds the one remaining return type fix that didn't show up during the merge window so far (my base for testing was 2 days ago). After that, a refresh of the existing kmalloc() conversions, then updates to the script for devm_kmalloc(), and then those conversions. I primarily did tons of build testing across all the archs I could manage. I did boot testing as well, but most of these changes are in drivers I can't test, but the conversions are, as before, very mechanical. Thanks! -Kees devm_kmalloc_obj treewide conversion for v7.4-rc1 - one last type fix that didn't land yet in the merge window (9p) - treewide refresh of kmalloc_obj() conversions - devm_kmalloc_obj conversion rules added to Coccinelle scripting - treewide conversion of devm_kmalloc() family to devm_kmalloc_obj()
Arm: - Fix a couple of embarrassing merge mistakes in kvmarm-7.4 - Cleanup the HCR_EL2 bit fields to exclusively use the generated definitions, fixings a nasty regression introduced in 6.16, where barriers were not upgraded from NSH to ISH anymore - Fix publication of state when a vcpu is forced out of the guest - Let vcpu pausing nest correctly - Sanitise ID_AA64MMFR3_EL1.S1P[IO]E to follow the rules of the architecture - Don't warn on SMCCC filter reserved range allocation failure - Prevent GICv5 and TLBI hypercalls to be used from the host when pKVM is active - Enforce that only GICv3 guests are supported for pKVM - Don't try to access GICv5 EL2 sysregs from EL1 - Compute architectrally correct values for ID_AA64MMFR3_EL1.S1P[IO]E by checking the feature dependencies - Require matching VGIC and ITS model - Cleanup TRACE_REMOTE dependencies - Fix random comments Arm selftests: - selftests: Skip unwritable ID fields in the failed-run test - Move pkvm_selftests() after all CPUs have initialized EL2 RISC-V: - Allow Zicclsm, Ziccamoa, Ziccif, Za64rs for KVM guest - Implement KVM_PRE_FAULT_MEMORY ioctl() - Replace imsic switch-case macros with range checks RISC-V fixes: - Avoid redundant interrupt check for pending timers - Reject vCPU creation after AIA initialization - Fix build with vector support disabled - Fix IPI delivery for out-of-order vcpu_id - Use a raw lock for IMSIC wakeup state - Reject vCPU creation after AIA initialization RISC-V selftests: - Lazy V-extension enablement for KVM selftests - Show sepc/scause/stval CSRs in KVM selftests vcpu dump
The two things of note here are the disablement of inline data support and a new lazyio mount option to enable LAZYIO behavior globally (instead of via an ioctl on a per-file basis), both from Xiubo. Despite being over a decade old, the inline data feature never lost its experimental status -- it has always been off by default and required passing --yes-i-really-mean-it flag to be turned on. It was officially deprecated in 2020 and is now in the process of being removed on the MDS side. For now it's still possible to re-enable it in Kconfig, but the code will eventually be dropped from the kernel client entirely. Outside of that we have a number of bug fixes, a series from Tal to help phase out older page APIs, some cleanups from Max and a large pile of LLM-based hardening patches. Xiubo is also back in a maintainer role, replacing Slava.
LoongArch changes for v7.4 1, Add LoongArch-specific ACPI initialization; 2, Set NX compat flag in PE/COFF efi header; 3, Use pa_to_nid()/nid_to_addrbase() rather than hard-code; 4, Detect and expose LAMCAS/DIV32 feature existence; 5, Fix and improve perf hardware breakpoints; 6, Fix and improve BPF JIT (trampoline and 32-bit operations); 7, Add arch_crash_save_vmcoreinfo() support; 8, Some bug fixes and other small changes.
Current release - new code bugs: - mctp: usblib: fix assertion breaking esoteric builds Previous releases - regressions: - eth: ti: am65-cpts: fix support for PTP_EXTTS_REQUEST2 ioctl - eth: mlx4: always create the eth and ib auxiliary devices - Revert advertising the TCP MSS from the configured MTU - eth: tg3: invert restart quirk logic to restrict SNP power-down bypass - eth: bnxt: recycle agg buffers when Rx head buffer allocation fails - netlink: check sk_rcvbuf before charging the dump skb Previous releases - always broken: - net: fix frag_list leak in skb_segment_list() error path - sctp: reject forged cookie peer_addr with unknown address family - vxlan: keep reserved_bits across changelink - net: limit priority VLAN untag depth - inet: frags: prevent acceptance of partially authenticated reassembly - gro: do not GRO GSO packets with inconsistent payload - tcp: avoid double destroy in tcp_abort() of an unaccepted child Signed-off-by: Jakub Kicinski <[email protected]>
hyperv-next for v7.4-rc1 - Update to documents and code comments (Michael Kelley) - Harden Vmbus (Kameron Carr) - Rework MSHV driver page deposit logic (Mukesh Rathor) - Vmbus kexec bug fix (Shradha Gupta) - Miscellaneous bug fixes (Daehyeon Ko, Jiale Yao, Sasha Levin)
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Linus,
optimizations, fixes, and preparation for work that we're planning for
v7.5 - there's not much in terms of new features this time.
thanks,
- Paul
RISC-V updates for v7.4
- Add support for crash hotplug
- Improve user copy performance on cores with fast misaligned
accesses
- Optimize code paths involving pgtable_l{4,5}_enabled() by patching
in the return values during early boot (since these don't change
during runtime), or by specifying the return values directly in
Kconfig files (for purpose-built kernels)
- Change the PCIe bus reassignment behavior to depend on the
PCI_REASSIGN_ALL_BUS PCI flag (as ARM64 does)
- Avoid an unnecessary sstatus CSR read during context switch
- Make the sbi_ecall() macro variadic, improving code clarity
- Refactor __switch_to_vector() to prepare for upcoming vector context
switch optimizations
- Add a kselftest for vectorized user copy
- Add bounds checking on the shadow stack restore token address to
avoid it being used as an attack vector
- Fix the shadow stack and indirect branch landing pad control functions to
only update the CPU's envcfg CSR when operating on the current task
- For MIPS RISC-V systems, add support for early boot-applied errata;
and for P8700 RISC-V systems, avoid WFI usage in the kernel (since
it is buggy)
- Add the "B" RISC-V ISA extension to hwcap and hwprobe reporting
- Add support for specifying and reporting the "Zic64b" RISC-V ISA
extension, and add it to the SpacemiT K1, K3, and Sophgo SG2044 DT
files
- Require the block size of cache management operations to be
specified in DT schema validation for the RISC-V ISA extensions
Zicbom, Zicbop, and Zicboz
- Some miscellaneous fixes: fix an incorrect bitfield width in the
RVG_SYSTEM_CSR_MASK bitmask macro; make RISCV_ALTERNATIVE mandatory,
now that XIP kernel support has been removed; and remove some
unnecessary includes in kernel/smp.c
[ This time with 'GIT PULL' in the subject ] [ I just noticed I had some ktest patches sitting around in my repo. I just pushed everything up to my tree. They are minor updates so hopefully they are fine for this late in the merge window. ] ktest updates for v7.4: - Sort configs before writing config file Currently the .config file is created from the perl hash array from reading the applied min-configs. The order is determined by how perl hashes the values. This causes the .config file to be created in different orders for each run, and the order may determine the final value of the .config file after it goes through a make oldconfig. Sort the values when creating the .config so that the result is the same for every run. - Add total test time to run output Have ktest display the total test time of running all the tests. This is useful to find issues in the build, install, boot or test run where things are hanging for longer than expected. - Update reading of the git output during bisect The ktest bisect is an automated way to run git bisect. Since there currently no easy way to know if the bisect found the bad commit (I'm talking with the git maintainers to fix this[1]), it parses the output for the line "is first bad commit". But a recent update to git has the output state "is the first 'bad' commit" which breaks ktest bisect. Have ktest handle both output strings. [1] https://lore.kernel.org/all/[email protected]/ ktest-v7.4
kgdb patches for 7.4 Varied updates this cycle. Naveen Kumar Chaudhary fixed a memory leak when the environment is already full, eliminated to weird historical cruft (CMD_BUFLEN having different values in different files) and removed some dead code. Fang Xieyan tackled a family of related buffer overflows in the gdb remote protocol parsing (great fixes from a defensive coding point of view but not security relavent; gdb can already do anything it wants to). Signed-off-by: Daniel Thompson (RISCstar) <[email protected]>
A handful of late-arriving changes, most of which were ready ahead of the merge window: - More Portuguese translation updates - Some docs-build and self-test fixes - Bring documentation for the user-space access primitives in include/linux/uaccess.h into the docs build. This revealed a number of malformed kerneldoc comments, which are fixed in a subsequent tweak to uaccess.h. Expect a trivial conflict with your tree due to a kerneldoc change that came via another path. The uaccess.h change was done late, but only affects formatting, not content. Nonetheless, if you don't want it, this stuff can wait until 7.5 without causing undue grief.
Hey Linus,
Please consider pull to receive the updates for this cycle. This
consists of start of work for hiding dmaengine internals and adding new
APIs for dmaengine calls. Also couple of drivers and device and lot of
updates esp AI-assisted improvements to drivers.
dmaengine updates for v7.4
Core:
- Better document descriptor flags and clarify ordering rules around
cookie completion
- New APIs to start hiding dmaengine guts so that we can start making
them internal
New Support:
- Nord and Maili GPI DMAengine support
- DW axi dma updates and support for UltraRISC DP1000 controller
- Apple M3 generation ADMACs support
- Amlogic A9 SoC DMA controller driver
- Sun6i refactoring and support for Allwinner A733 DMA controller
Updates:
- Freescale device_prep_peripheral_dma_vec support and dynamic
scatter/gather chaining
- TI crossbar and cppi DT schema conversion
- zynqmp driver updates for error patch handling
- Link list handling improvements for DW edma driver
- ST dma40 improvements and corner case handling
Hi Linus,
includes as usual bunch of new device and driver support and quite a few
updates to drivers.
phy updates for 7.4
As usual bunch of new device and driver support and updates to existing
drivers
- New Support
- Rockchip rk3576 csi dphy support,
- Mediatek MT8195, MT8196 DisplayPort PHYs. MT8196 PCI-Express Gen4 S-PHY,
MT8189 tphy support
- Qualcomm Nord eUSB2, QMP USB PHY, QMP PCIe and Gen5x16 PHY support, M31
eUSB2 PHY, Maili QMP UFS & PCIe PHY, Shikra PCIe phy.
- New driver for Qualcomm CSI2 C-PHY/DPHY support and new APIs in core to
parse phy nodes.
- Nvidia Tegra238 XUSB pad controller support, Tegra264 MPHY driver,
Tegra264 xusb support.
- Thunderbolt phy support in core and Qualcomm driver support for USB4 for
X1E platforms
- Google Tensor SoC USB PHY driver
- ASPEED AST2700 USB3 PHY driver
- Microchip MCP2542 can phy support
- Updates
- FRL TxFFE config support and Samsumg driver support and runtime PM for
dcphy driver
- Mediatek optional repeater support for USB2 ports
- Refactoring and improvements on rockchip usbdp driver
- Apple USB4 pipehandler state support
- Rockchip single-lane DP support
Hey Linus, and few dmi quirks handling. soundwire updates for 7.4 - CLOCK_STOP_MODE1 support in bus and Intel driver - Dmi quirks for disabling ghost on Lenovo Yoga 7 Pro, Lenovo Yoga Slim 7, Lenovo Pro 9, Lenovo Yoga Slim 7i 14IPH11. - Few more codecs as wake capable, tac5xx2 family, rt718, rt766/rt767 - Qualcomm Shikra SoC support
rpmsg updates for v7.4 Allow virtio rpmsg to use separate transmit and receive buffer counts based on the vring sizes, and obtain buffer sizes from virtio config space when the feature is negotiated. Document the configuration and report the MTU in the sample driver. Fix signal interruption and timeout handling while waiting for a virtio transmit buffer. Release the device tree node reference on MediaTek channel teardown. Convert the rpmsg control ioctl comments to kernel-doc format.
remoteproc updates for v7.4 Add Qualcomm QMI Thermal Mitigation Device support for PAS-managed remote processors, with cooling device bindings and configurations for Hamoa, Kodiak, Lemans, Talos, Monaco, and Shikra CDSP and modem subsystems as applicable. Add per-power-domain proxy performance states for Hawi CDSP and update Hawi, Maili, and SDX75 PAS compatible bindings and the SDX75 device tree. Correct the Qualcomm ADSP startup timeout. Fetch auto-boot firmware only once and synchronize boot work with device removal. Bound ELF section header accesses, improve trace diagnostics, and update coredump configuration documentation. Set 48-bit DMA masks for TI K3 DSP and R5 remote processors, correct mailbox message types, and enable compile testing for more TI drivers. Fix i.MX address range boundary checks and DSP runtime PM ordering, and simplify mailbox notification handling. Harden Xilinx mailbox setup and teardown and avoid sending notifications when the transmit queue is full. Propagate STM32 optional IRQ lookup errors and correct the MediaTek MT8188 SCP register binding.
This includes the following changes related to sparc for v7.4: - Allow loading sparc32 kernels on Sun machines away from start of RAM - Fix timer comparator problem for sparc64 resulting in RCU stalls - Increase kernel thread stack size for sparc64 - Fix bug in fault handling during window fill for sparc64 - Fix bug in vmalloc fault handling for sparc32 - Fix fault address reporting bugs for both sparc32 and sparc64 - Use membanks for early memory setup, removing legacy sp_banks construction for sparc32 - Add seccomp filter support for sparc64 and seccomp support for sparc32 - Fix problem with nested tick interrupts and IPIs leading to stack overflow for sparc32 - Fix missing cache flushes as well as optimise away redundant cache flushes for sparc64 - Clean up dead/unnecessary code and obsolete comments
Here is the i3c subsystem pull request for 7.4. It introduces the I3C hub support in the core with drivers still being worked on. Then we have the usual fixes and cleanups. I3C for 7.4 Subsystem: - Add APIs for I3C hub support - Restrict HDR modes to those supported by the bus and target - Fix ACPI target enumeration on multi-instance controllers by extracting the bus-controller instance number and PID from the correct _ADR fields. - allocate IBI workqueue with WQ_HIGHPRI Drivers: - dw: Synaptics sl2610 support - mipi-i3c-hci: HDR-DDR support, cleanup and fixes
Here is the main PDx86 PR for v7.4.
The ACPI: video / WMI Kconfig dependency changes spill a bit to GPU side
but the rest is nicely contained where one would expect.
Highlights:
- acer-wmi:
- Add HWMON support for Aspire A315-58G
- Add platform profile, HWMON, and fan control support for Nitro
ANV15-51
- Add support for mode key on some models (e.g. Nitro AN16-41)
- acer-wmi-battery: Add battery control driver
- ACPI: video: Remove CONFIG_X86 dependency as WMI now supports non-X86
archs
- alienware-wmi-wmax: Add support for Alienware Area-51 AAT2250
- amd/hsmp: Add support for Family 1Ah client platforms
- amd/pmc:
- Do not rely on intermediate cycle counting in the wakeup delay logic
- Make HP Laptop 14-fq1xxxx and Thinkpad L14 Gen3 (21C5) use s2idle
quirk
- Make Asus ROG Flow Z13 use spurious_8042 quirk
- Add support for AMD 1Ah Family DCh SoC
- amd/pmf:
- Add support for AMDI0112
- Fix compat ioctl handling
- arm64: asus-glymur-ec: Add support
- arm64: lenovo-yoga-slim7x-gen11-ec: Add support
- arm64: qcom-hamoa-ec: Disable SCI IRQ during suspend
- arm64: thinkpad-t14s-ec: Do not send KEY_KBDILLUMTOGGLE on FN + Space
as EC already steps keyboard backlight
- asus-armoury:
- Add discrete GPU power state attribute
- Add support for discrete GPU disable on ProArt H7606
- Support tunables with more models
- asus-nw-wmi: Make ROG Flow X13 GV302X use the tablet-mode switch quirk
- asus-wmi:
- Make ASUS ProArt PX13 use the tablet-mode switch quirk
- Add support for mute LED
- Fix screenpad backlight problems
- Correct kbd_rgb_state_index description (keyboard -> shutdown)
- ayaneo-ec: Add support for AYANEO 2S
- bitland-mifs-wmi: Correct interpretation of WMI call output
- dell-dw5826e: Add support for _DSM with revision 0 (Slate PTL CS 14,
Yukon PTL CSLW 14, Yukon PTL 360 14)
- hp-bioscfg: Many fixes
- hp-wmi:
- Add change control support for HP Spectre x360 16-aa0xxx
- Do not show any fan attribute when no fans are available
- Add support for OMEN 16-am0xxx, OMEN 16-am2xxx, OMEN 17-ck1xxx, OMEN
MAX 16-ah0xxx, OMEN Slim 16t-an000, OMEN Transcend 14-fb1xxx
- Add HP Laptop 15-fd1xxx support
- Add Victus 15-fb3xxx, Victus 16-d1xxx (8A26), Victus 16-e0xxx support
- huawei-wmi: Add support for Honor MagicBook camera privacy toggle key
- ideapad-laptop:
- Add support for Mode key and Phone Link key found on some Yoga Pro
7 models
- Add support for camera switch on some Yoga Pro 7 and Legion Pro 7
models
- intel/hid: Support 5-button array on HP EliteBook x360 1030 G2
- intel/pmc:
- Add rugged Panther Lake support
- Fix Nova Lake PCD-S telemetry constants
- intel/pmt:
- Block mmap when read_telem() callback is present
- Fix PCI device to device generalization
- intel/speed-select-if: Always enumerate on recent server CPUs
(Family 19, i.e., Diamond Rapids and onwards)
- intel/tpmi: Prepare for enumerating non-PCI devices
- intel-uncore-freq:
- Restore limits properly also on sparse setups
- Add rugged Panther Lake support
- intel/vsec:
- Reset state properly before re-enumeration
- Fix inverted logic in get features function
- lenovo-wmi-capdata: Support non-supported, stubbed WMI query method
for capdata device
- msi-ec:
- Prevent out of bounds charge thresholds
- Add support for MSI Creator Z16 A11UE, MSI GL65 Leopard 9SCXK,
MSI Katana 15 B13VFK
- msi-wmi: Ignore key events for keys already handled by atkbd
- oxpec:
- Add support for charge limit on OneXPlayer Apex
- Add OneXPlayer 3 support
- panasonic-laptop:
- Add support for FN key
- surface: aggregator_registry:
- Remove non-existing sensors device and fix tablet-mode detection on
Surface Pro 11
- Add performance profile and fan support for Surface Pro 11
- thinkpad_acpi:
- Add keyboard attachment detection and reporting found on Thinkpad
X1 Fold
- Add support for Thinkpad L440 fan speed reporting
- tools/power/x86/intel-speed-select:
- Correct make clean
- Increase wait time after SST PP level switch to prevent stale
capability readings
- tuxedo:
- Fix keyboard LED map ordering
- Correct interpreting intensity vs RGB levels
- uniwill-laptop:
- Correct brightness handling for 3 level keyboard
- Add keyboard backlight support for TUXEDO devices
- Add support for PCSpecialist Recoil 16 AMD
- Add support for screen rotation key found on PCSpecialist Recoil 16
AMD and TUXEDO Stellaris 16 Gen7
- Implement rainbow animation as trigger
- Correct led labels to match LED subsystem conventions
- Add support for LAPKC71E Intel NUC x15
- wmi:
- Remove X86 dependency to allow supporting arm64 laptops in future
- wmi-bmof: Move under drivers/platform/wmi/
- Miscellaneous cleanups / refactoring / improvements
Regards, i.
The following is an automated shortlog grouped by driver:
acer-wmi:
- Add support for Acer Nitro AN16-41
- Add support for Acer Nitro ANV15-51
- Cycle platform profile on mode key 0x4
- enable hwmon on Aspire A315-58G
- Remove unused platform_profile_support variable
- split hwmon from platform profile quirk
- use bool for boolean quirk fields
ACPI: video:
- Remove CONFIG_X86 handling from nvidia_wmi_ec_supported()
add Acer battery control driver:
- add Acer battery control driver
Add ACPI_COMPANION() NULL check in topstar_acpi_probe:
- Add ACPI_COMPANION() NULL check in topstar_acpi_probe
amd: hfi:
- Fix a use-after-free when unloading the driver
- Fix out-of-bounds reads when parsing ranking data
- Rely on ACPI enumeration instead of a dummy device
amd/hsmp:
- Add HSMP client support for Family 1Ah
- Document and expose client telemetry table in UAPI
- Recognize Family 1Ah client platforms and hide server-only paths
- Route metric table through the client messages
amd/pmc:
- Add HP Laptop 14-fq1xxx to s2idle quirk list
- Add PMC driver support for AMD 1Ah Family DCh SoC
- Add spurious_8042 to ASUS ROG Flow Z13 GZ302EA
- Add Thinkpad L14 Gen3 (21C5) to quirk_s2idle_bug
- clear devm-managed pointers on remove to prevent stale reuse
amd: pmc:
- Drop scratch_reg from amd_1ah_m80_cpu_info
- Only create amd_pmc_idlemask if scratch defined
amd/pmf:
- Add AMDI0112 ACPI ID
- fix compat ioctl handling
- Fix power_supply refcount leak in amd_pmf_get_battery_prop()
- Inline !AMD_PMF_DEBUG stub
- Inline simple helper function of Smart PC TA interfaces
- Inline simple helper function of SPS Layer
- Inline simple helper functions of Core Layer
- Inline wrappers of ap{mf,ts}_if_call_store_buffer()
- Validate the APTS state index
amd:
- Stop counting intermediate cycles with metrics table
arm64:
- Add a driver for the EC found on ASUS Glymur machines
- add Lenovo Yoga Slim 7x Gen 11 EC driver
arm64: qcom-hamoa-ec:
- Disable the SCI IRQ during suspend
arm64:
- Remove redundant dev_err_probe()
arm64: thinkpad-t14s-ec:
- don't send KEY_KBDILLUMTOGGLE on Fn+Space
asus-armoury:
- add dGPU disable fallback DEVID for ProArt H7606 series
- Add dgpu_power_state attribute
- add power limits quirk for FA608PM
- add power limits quirk for FA608UH
- add power limits quirk for FA608UP
- add power limits quirk for G533QS
- add power limits quirk for G614FM
- add power limits quirk for G713QR
- Add power limits quirk for GA401IHR
- add power limits quirk for GA402NV
- add power limits quirk for GU605CM
- add support for GX651AR
- Add XBOX ROG Ally X 20 Tunables
- let attribute groups decide their own visibility
- move has_valid_limit() above the attribute declarations
- Prevent disabling dGPU when in use
- use sysfs_create_groups() and sysfs_remove_groups()
asus-laptop:
- Fix typo in infos_show() comment
asus-nb-wmi:
- add tablet mode quirk for ROG Flow X13 GV302X
- Fix typo in asus_nb_wmi_quirks() comment
asus-wmi:
- Add ASUS_WMI_DEVID_DGPU_POWER_STATE define
- Add mute LED support
- add tablet-mode switch quirk for ASUS ProArt PX13
- don't warn when LPS0 is unavailable
- fix screenpad power state detection
- fix TUF keyboard power state shutdown naming
- fix unclear usage of bd->props.power
- fix use-after-free unregistering kbd_led led
- name the TUF keyboard RGB state and speed codes
- Remove redundant per-device wmi_lock and duplicate rfkill ops
- Remove unused platform_profile_support member
- remove unused screenpad_brightness
- rename TUF RGB state DEVID to _CMD
- Serialize WMI method evaluations with a mutex
- use backlight_is_blank() for screenpad power
- validate custom fan curves on enable
ayaneo-ec:
- Add AYANEO 2S charge control
bitland-mifs-wmi:
- Detect failed function calls
- Treat WMI_FN_SYSTEM_AC_TYPE as optional
dell: alienware-wmi-wmax:
- add Alienware Area-51 AAT2250
dell-dw5826e:
- Extend _DSM support to revision 0
dell-wmi-aio:
- Convert to use the bus-based WMI API
- Use named defines for event types
docs: TPMI:
- use literal block for commands
gpd pocket fan:
- Cancel work before releasing GPIOs
hp_accel:
- Fix typo in lis3lv02d_acpi_write() comment
hp-bioscfg:
- allow clearing current_password
- consolidate common package-element parsing
- fix 16-byte heap overflow for empty auth token
- fix non-ASCII truncation in hp_get_string_from_buffer()
- fix off-by-one in password length check
- fix OOB reads in hp_get_string_from_buffer()
- fix oops on short integer attribute buffer
- fix slab-out-of-bounds write in hp_convert_hexstr_to_str()
- NUL-terminate the SPM auth token
- remove dead bounds check in audit_log_entries_show
- return -E2BIG from validate_password_input()
- Support allocating large number of BIOS vars
- validate SPM state returned by firmware
- zero the hex-string decode buffer in hp_convert_hexstr_to_str()
hp-wmi:
- Add board 8E41 (OMEN Transcend 14) to feature board list
- add charge_behaviour support for Spectre 8C15/8C17
- Add OMEN board 8A17 thermal profile support
- Add OMEN board 8A18 thermal profile support
- Add OMEN board 8D40 thermal profile support
- Add OMEN board 8D42 thermal profile support
- Add support for HP Laptop 15-fd1xxx (board 8DE1)
- Add support for Omen 16-am0xxx (8D3F)
- add support for OMEN 16-am2xxx boards
- Add Victus 15-fb3xxx support
- Add Victus 16-d1xxx board 8A26 support
- Add Victus 16-e0xxx board 88EE support
- Disable hwmon attributes when no fans are usable
- fix heap OOB read and memory corruption in hp_wmi_perform_query()
- Fix hwmon keep-alive teardown
- Remove unused platform_profile_support variable
huawei-wmi:
- add camera toggle keycode
ibm_rtl:
- Fix potential OOB read at signature search
ideapad-laptop:
- Add Yoga Pro 7 14IAH10 Mode key
- Map Smart Connect hotkey to KEY_LINK_PHONE
- Report camera switch as SW_CAMERA_LENS_COVER
int1092:
- Mark as orphan
intel/hid:
- Enable 5 button array on HP EliteBook x360 1030 G2
intel/pmc:
- Add rugged Panther Lake support to intel_pmc_core
- Fix stale NVL PCD-S S0ix_LPM telemetry constants
intel/pmt:
- Add register access callbacks
- Block mmap when callback is present
- complete pcidev to device update
- Do not remap when using callbacks
- refactor rc with a return value
- refactor rmw with a return value
intel: power-domains:
- Handle failed init in tpmi_get_linux_die_id()
- Handle failed init in tpmi_get_power_domain_mask()
intel_telemetry:
- initialize default trace verbosity
intel/tpmi:
- Build the TPMI control words in one expression
- Declare the loop counters in their loops
- Describe a TPMI instance by its two devices
- Describe the device creation policy on the function
- Do not assume TPMI is enumerated from PCI
- Drop unused arg from tpmi_set_control_base()
- Fix typo in TPMI_FEATURE_NAME_LEN comment
- Get tpmi_info directly from the parent device
- Include the headers tpmi_common.c relies on
- Keep the feature resources in intel_tpmi_info
- Remove unused vsec_dev from intel_tpmi_pm_feature
- Split off the PCI VSEC enumeration
- Split out enumeration independent init and exit
- Turn TPMI_GET_SINGLE_ENTRY_SIZE() into a function
- Use DEFINE_RES_MEM() for the feature resources
- Use DEFINE_SHOW_STORE_ATTRIBUTE() for mem_write
- Use guard() for tpmi_dev_lock in the status read
- Use scnprintf() to build the debugfs names
- Use scope based cleanup in the memory dump
- Use static strings for the feature device names
intel-uncore-freq:
- Add support for rugged Panther Lake
- Continue restoring limits on resume
intel/vsec:
- Fix inverted walk_header() test in get_features()
- Pass a struct device to intel_vsec_set_mapping()
- reset state before re-enumerating
- Use bool for run_once
intel: wmi:
- Remove redundant callbacks
- Use sysfs_emit in sbl-fw-update
ISST:
- Avoid model check for recent servers
lenovo-wmi-capdata:
- Adopt new WMI API
- Defer mutex initialization
- Detect stubbed capdata device
- Do not match missing components
- Do not stop the AC notifier chain on error
- Only allocate sub-master info when necessary
lenovo-wmi-{capdata,other}:
- Only allocate capdata list when necessary
lenovo-wmi-capdata:
- Register component even on WMI error
- Store a pointer to component info
lenovo-wmi-helpers:
- Adopt new WMI API
lib/string_choices:
- Add str_supported_unsupported() helper
MAINTAINERS:
- Add Aaron Erhardt as maintainer of TUXEDO DRIVERS
- Add myself as a LENOVO drivers co-maintainer
mellanox:
- Remove redundant dev_err()
msi-ec:
- Add MSI Creator Z16 A11UE EC firmware
- Add MSI GL65 Leopard 9SCXK EC firmware
- Add MSI Katana 15 B13VFK EC firmware
- Report valid charge thresholds when unset
msi-laptop:
- Fix typo in struct quirk_entry comment
msi-wmi:
- Fix hotkeys dropped with vendor backlight
- Ignore WMI events for keys also handled by atkbd
- Sort scancodes numerically
olpc:
- Reserve space for a string terminator
oxpec:
- Add OneXPlayer 3 quirk
- Fix Apex charge limit control
panasonic-laptop:
- Fix typo in the file history comment
- register FN key up/down events
Remove redundant dev_err()/dev_err_probe():
- Remove redundant dev_err()/dev_err_probe()
platform/x86: thinkpad_acpi:
- Revert: Add X9-14 Gen 1 to non-standard thermal/fan quirk tables
samsung-laptop:
- Fix typo in sabi_configs comment
simatic-ipc:
- fix platform device leak on registration failure
surface: aggregator_registry:
- Add performance profile and fan support for Surface Pro 11
- Add Surface Laptop 8th Edition
- Fix tablet-mode detection on Surface Pro 11
- Remove sensors device for Surface Pro 11
think-lmi:
- Use ARRAY_SIZE() in tlmi_errstr_to_err()
- Use scnprintf() in new_password_store()
- Use sysfs_emit() in pending_reboot_show()
thinkpad-acpi:
- Add X1 Fold keyboard attachment detection
thinkpad_acpi:
- Add X9-14 Gen 1 to non-standard thermal/fan quirk tables
- convert conditional mutex locks to ACQUIRE_ERR()
- convert mutex_lock() to guard(mutex)
- fix deadlock in hotkey input open/close
- Fix fan speed reporting on ThinkPad L440
- fix typos in comments
- Remove unreachable code in beep_read()
- Use bool for local is_thinkpad variable
- use __free(kfree) for automatic cleanup
- Use input_device_enabled()
- Use str_supported_unsupported() helper
tools/power/x86/intel-speed-select:
- Clean all the produced files
- Correct macro name in debug output
- Fix signed shift UB in BIT() macro
- Increase wait time after SST PP level switch
- v1.27 release
toshiba_haps:
- Remove unnecessary ret in toshiba_haps_resume()
tuxedo:
- Don't use device driver data
- Fix keyboard LED map ordering
- Set HID report ID on success
- Update and extend documentation
- Use intensity according to HID spec
uniwill-laptop:
- Add PCSpecialist Recoil 16 AMD
- Enable kb backlight and lightbar for TUXEDO
- Extend support for the Intel NUC x15
- Fix breathing animation on Intel QC
- Fix brightness notify for 3 level keyboards
- Fix typo in the kbd LED brightness comment
- Implement rainbow animation as trigger
- Label multicolor LEDs correctly
- Map the screen rotation key
- Report correct lightbar brightness
wmi-bmof:
- Move to generic WMI code
wmi:
- Introduce wmidev_exists()
- Remove dependency on CONFIG_X86
yogabook:
- use assign_bit()/change_bit() where applicable
Merges:
- Merge branch 'fixes' into review-ilpo-next
- Merge branch 'platform-drivers-x86-intel-pmt' into for-next
Added a better description of changes in pull-request. Regards, Konstantin Changes for 7.4-rc1 The bulk of this cycle is hardening against corrupted or maliciously crafted volumes. Most of these fixes come from fuzzing and KASAN reports. The main areas are: - $LogFile replay, where several unchecked on-disk sizes could make mount write past the MFT record buffer; - MFT record and index parsing; - extended attributes, where a bad $EA entry could leak up to 64K of kernel heap to userspace through getxattr(). Reading a damaged compressed file could also return uninitialized page cache contents to userspace; that is fixed too. A few fixes affect healthy volumes as well: a heap overflow in fallocate(INSERT_RANGE) on small files, a use-after-free when a WOF-compressed file is opened for writing during a concurrent read, a lock-order deadlock in readdir, and stale disk data showing up in newly allocated clusters of compressed files. On the feature side there are new tracepoints covering mount, log replay, lookup, directory index, allocation, iomap and file I/O. There is also a new 'ugm' mount option (on by default): with ugm=0, newly created files don't get the WSL uid/gid/mode extended attributes, which Windows doesn't use. The rest is smaller correctness fixes and cleanups.
a/v7.4-2 For a patch reverting "media: Don't hide I=C2=B2C or SPI drivers by default= ". Regards, Mauro --- [GIT PULL for v7.4] media updates
upcoming -rc cycle, thanks. I'm seeing two conflicts at this time: drivers/video/fbdev/ssd1307fb.c, vs fbdev tree: https://lore.kernel.org/[email protected] fs/coredump.c, vs fs-next tree: https://lore.kernel.org/[email protected] Possible future merge issues and their linux-next resolutions are: arch/riscv/Kconfig, vs riscv tree: https://lore.kernel.org/[email protected] mm/hugetlb.c mm/mm_init.c, vs liveupdate tree: https://lore.kernel.org/[email protected] drivers/misc/sgi-xp/xpc_uv.c, vs char-misc tree: https://lore.kernel.org/[email protected] fs/f2fs/f2fs.h, vs fs-next tree: https://lore.kernel.org/[email protected] fs/fuse/dax.c, vs fs-next tree: https://lore.kernel.org/[email protected] mm/internal.h, vs bpf-next tree: https://lore.kernel.org/[email protected] fs/f2fs/f2fs.h, vs fs-next tree: https://lore.kernel.org/[email protected] fs/xfs/libxfs/xfs_btree.c, vs fs-next tree: https://lore.kernel.org/[email protected] (read down a bit for Sasha's resolution) mm/mm_init.c, vs liveupdate tree: https://lore.kernel.org/[email protected] arch/arm64/mm/pageattr.c, vs arm64 tree: https://lore.kernel.org/[email protected] arch/um/Kconfig, vs uml tree: https://lore.kernel.org/[email protected] arch/arm64/kvm/mmu.c, vs kvm-arm-fixes tree: https://lore.kernel.org/[email protected] mm/sparse-vmemmap.c, vs memblock/for-next tree: https://lore.kernel.org/[email protected] mm.git review status for linus..mm-stable Everything: Total patches: 213 Fixes: tags: 69 cc:stable patches: 43 Reviews/patch: 2.04 Reviewed rate: 86% Excluding DAMON: Total patches: 192 Fixes: tags: 63 cc:stable patches: 39 Reviews/patch: 2.18 Reviewed rate: 89% Excluding DAMON and selftests: Total patches: 182 Fixes: tags: 57 cc:stable patches: 39 Reviews/patch: 2.23 Reviewed rate: 89% Summary of series in this merge: - "mm: make VMA flag semantics explicit, eliminate VM_SPECIAL" (Lorenzo Stoakes (ARM)): Replace VM_SPECIAL with helpers describing mapping ownership and behavior. Enforce the mmap flag rules and convert affected drivers, removing ambiguous tests shared by driver mappings and ordinary memory. - "support kselftest on nommu platform" (Hajime Tazaki): Add opt-in mmap and mremap tests for NOMMU systems. Teach the runner to avoid its fork-dependent timeout command and document the build and runtime requirements. - "mm/collapse: separate a collapse from its callers" (Kiryl Shutsemau (Meta)): Separate huge-page collapse from caller policy. Replace khugepaged identity checks with explicit permissions, and separate scanning from collapse with the mmap_lock drop in one place. - "mm: implement and use vma_has_anon_rmap(), silence KCSAN" (Lorenzo Stoakes (ARM)): Provide a common helper for testing whether a VMA has anonymous reverse mappings. Document the locking rules, annotate intentional concurrent reads for KCSAN, and convert the core MM callers. - "mm/sparse: remove SECTION_MARKED_PRESENT and further cleanups" (David Hildenbrand (Arm)): Remove SECTION_MARKED_PRESENT in favor of the early-section flag. Simplify sparse memory initialization, section metadata handling and related PFN validity checks. - "sh: remove NUMA and SPARSEMEM support" (Mike Rapoport (Microsoft)): Remove SuperH NUMA and SPARSEMEM support. The extra memory banks have been unusable since the NO_BOOTMEM conversion, leaving only the code and data overhead. - "mm: Unify device DAX and HugeTLB vmemmap population paths" (Muchun Song): Unify the generic device DAX and HugeTLB vmemmap population paths and shared tail-page handling. Remove the duplicate DAX machinery while retaining the powerpc radix implementation. - "kselftest: mm: fix some failure of split_huge_page_test" (Yeoreum Yun): Fix huge-page split tests racing with khugepaged recollapse. Use pagemap and page flags instead of VMA-boundary assumptions which fail when glibc has already enabled THP. - "memcg: move memcgid refcount to objcg to unpin dying memcgs" (Bingfang Guo): Let dying memcgs be freed while swapped-out shmem still holds their IDs. Move ID references to reparentable objcgs, with the necessary swap accounting and RCU lifetime changes. - "mm/truncate: fix data loss when truncating straddling large folios" (Zhang Yi): Preserve out-of-range data when truncating straddling large folios. Fix a lookup race and split-failure handling, and handle minimum folio orders for the forthcoming ext4 iomap buffered I/O path. - "mm/damon: introduce damos quota goal target metric complement flag" (SJ Park): Let DAMOS quota goals use a metric's complement, so utilization can also express free-memory goals without adding separate metrics. Add the sysfs interface, documentation and tests. - "arm64/mm: Standardize printing for pgtable entries" (Anshuman Khandual): Use the generic formatter for arm64 page-table entries, ready for future wider entries. Move the safe-PTE-update check out of the header to avoid an include cycle. - "mm: kmsan: fix iounmap metadata teardown" (Dima Koziuk): Fix KMSAN metadata leaks on iounmap and failed ioremap allocations. Free backing pages before removing their mappings, and share the teardown with partial-allocation cleanup. - "mm/damon/core: preserve quota state when constructing schemes" (Karl Mehltretter): Preserve running DAMOS quota state while validating parameter updates. Even rejected updates could reset accounting and exceed the quota window; add tests for both accepted and rejected updates. - "mm/vmalloc: fix vmalloc_dump_obj VA lookup" (Ye Liu): Fix vmalloc_dump_obj() lookups for last-page addresses and allocations spanning vmap zones. These allocations were being missed in diagnostic output. - "mm: various (urgent?) fixes" (David Hildenbrand (Arm)): Fix mmap charge leaks and hugetlb use-after-free, wrong-address unmapping, stuck locks and endless faults. Also preserve reservations on failed mremap and handle stale userfaultfd bits. - "maple_tree: fix maple_range_64 crashes in RCU mode" (Dimitris Charisis): Fix pointer and metadata confusion during RCU destruction of maple_range_64 nodes, avoiding double frees and invalid accesses. Add a regression test; no in-tree user currently uses this combination. - "mm: fix hugetlb NR_HUGETLB accounting on folio migration" (Hongfu Li): Fix hugetlb migration and preallocation accounting so /proc/vmstat retains the correct count and memory.numa_stat follows the folio to its new node. - "mm/damon: fix a minor bug, clean code, and add a test" (SJ Park): Fix 32-bit DAMON age overflow which made old regions look young. Share hugetlb folio acquisition code and add a regression test for the previously fixed last-region skipping bug. - "mm/damon/core: cleanup code, reduce stack usage, and add kunit" (SJ Park): Reduce kdamond stack usage and remove unused enums. Add deterministic PSI quota-goal tests which do not depend on the machine's current memory pressure. - "mm/damon: fix the temporal goal tuner's size quota conversion" (Donggeun Yoo): Bound the temporal tuner's quota conversion to prevent overflow and zero effective quotas, which could stop schemes making progress. Add boundary tests. - "Don't use GFP_DMA when calling dma_alloc_coherent" (Baoquan He): Remove redundant GFP_DMA flags from coherent DMA allocation calls. The DMA API already selects the zone from device limits and ignores the caller's flag. - "kselftest: mm: fix intermittent failure khugepaged test" (Yeoreum Yun): Propagate child-process failures in the khugepaged tests and prevent background collapse from racing their checks. This removes false passes and intermittent failures. - "MAINTAINERS: cover all hugetlb headers under HUGETLB SUBSYSTEM" (Enze Li): Cover all hugetlb headers in MAINTAINERS so get_maintainer.pl finds the right maintainers. Also label the closing hugetlb_cgroup.h include guard. Summary of the 65 singletons in this merge: The singletons include a few worthwhile performance fixes. Avoiding unnecessary reverse-map tree updates gave a reported 15.9% improvement in UnixBench's execl test on a 192-core x86 system. A reclaim retry fix stops defrag_mode from spinning under memory.low protection; a reported file-creation stress test ran 5.7 times faster, with far less memory pressure. Narrower hugetlb invalidations also spare KVM guests needless refaults: the reported Redis-in-VM P99 QPS penalty while punching holes fell from 7.09% to 1.45%. Several fixes prevent lost data or corrupted memory. Lazyfree huge-page races with mremap()/munmap() could lose data or access freed memory, and MADV_COLD could lose a concurrent write's dirty bit. Another fix prevents stale migration entries from outliving large folios. On filesystems with blocks smaller than a page, extending a file by 4 GiB or more could expose bytes written past the old EOF through mmap instead of zeroes. That is fixed, along with use-after-free races in PAGEMAP_SCAN during process exit and in memory-cgroup accounting on PREEMPT_RT kernels. Other fixes stop UFFDIO_MOVE spinning forever on pinned large folios, which could wedge other memory operations, and stop mremap() leaking commit charges until allocations fail under strict overcommit. A further fix keeps userfaultfd tracking intact on neighboring mappings. NUMA binding no longer prevents long-term pins when the chosen node has only movable memory, fixing QEMU/VFIO startup and io_uring buffer registration failures. MGLRU also gets a fix for early-boot crashes with memory cgroups disabled at boot, notably in small crash kernels.
Could you please consider this pull request?
Thanks,
f2fs-for-7.4-rc1
In this round, key enhancements focus on introducing a dedicated metadata
cache infrastructure and dynamically parameterizing on-disk block layouts
and geometry macros. Moving meta, node, and compress blocks out of the VFS
page cache removes the page == block size assumption for metadata, which
along with dynamic block layout descriptions paves the way for large folio
and page != block support in the future. We also opt in to multigrain
timestamps, add bio entry-count throttling for asynchronous write_end_io
completion, and expose the resizable_tail feature via sysfs.
Alongside these features, critical bug fixes resolve race conditions across
compression, mmap write faults, checkpoint/shutdown, and filesystem freeze,
prevent write bio splitting and GC holes on sequential zoned devices, and
strengthen on-disk sanity checks for SIT/NAT bitmaps, read-only curseg
entries, and device aliasing. Additional stability patches address online
resize, roll-forward recovery, atomic file operations, quota handling, and
dirty inode syncing livelocks.
Enhancement:
- implement dedicated metadata cache for meta, node, and compress blocks
to decouple metadata from page cache for large folio and page != block
support
- dynamically describe SIT, NAT, orphan, dentry, node, and xattr block
layouts and parameterize block/sector/node conversion macros
- opt in to multigrain timestamps
- introduce max_atc_write_bio_entry_cnt sysfs node
- expose resizable_tail feature via sysfs
- avoid unnecessary reads in f2fs_update_meta_block()
Bug fix:
- compress: force out-place update for all writes, allow pinning empty
compressed files, and fix truncate/writeback and cache population races
- zone: avoid bio split and GC target block grab failure on sequential zones
- quota: convert inline quota files on quotaon, fix flush failure during
freeze, and restore empty string mount options
- atomic/mmap: disallow mmap write and data-modifying fallocate on atomic
files, avoid truncate_inode_pages_final() on live inodes, and fix races in
f2fs_vm_page_mkwrite()
- resize/alias: refresh pinned allocation boundary and flush SIT journal
during resize, and drop pending discards before reserving device alias
- sanity check: bound SIT/NAT bitmaps by checkpoint pack, check all
cur_*_segno[] on readonly images, and validate multi-device on device alias
- recovery/cp: release removed xattr node in roll-forward recovery, invalidate
curseg on change_curseg() failure, and return -EIO for lost inode block
after cp_error
- fix livelock in syncing dirty inodes and preserve APPEND/UPDATE ino entries
- use bio_in_atomic() in f2fs_{read,write}_end_io()
- fix 32-bit shift truncation in mount option bitmasks and defragment range
And, the series includes a number of minor bug fixes.
Subject: [GIT PULL] power-supply changes for 7.4
MIME-Version: 1.0
Hi Linus,
power supply and reset changes for the 7.4 series
* power-supply core
- introduce LOAD_SWITCH property
- pack power_supply_desc to optimize memory
- prevent power-supply device unregistration while callback runs
- drop last CONFIG_OF build-time dependencies from the core
- documentation fixes
* power-supply drivers
- bq27xxx: add support for bq27z746, bq28z620
- ab8500: add AB8505 support
- bq257xx: fix probe time configuration race condition
- multiple: convert drivers with custom LOAD_SWITCH properties to the
new standard one
- cros_charge-control: restore EC state on resume
- qcom_battmgr: fix USB type reporting, notify charger online state,
report full batteries and correct capacity on X1E
- gpio-charger: always report as discharging if input power is missing
- bq24190_charger: don't reset registers across system suspend
- qcom_smbx: a lot of independent fixes
- lots of error and module removal path fixes
- misc. fixes
* reset drivers
- misc. fixes
Backlight for v7.4
- Improvements & Fixes
- Qualcomm WLED: Fix a NULL pointer dereference in `wled_remove()` by setting platform
driver data in `wled_probe()`
- Qualcomm WLED: Fix the WLED3 brightness register stride to prevent consecutive string
writes from overlapping
- Qualcomm WLED: Read back the hardware-programmed brightness at probe, expose it via
`get_brightness()`, and prevent unbalanced OVP IRQ enabling
- TI LM3630A: Cancel delayed work synchronously after freeing the IRQ and before
destroying the workqueue in `lm3630a_remove()`
- Cleanups & Refactoring
- Ilitek ILI9320 / Kinetic KTD253: Fix spelling typos in comments
LEDs for v7.4
- New Support & Features
- Core: Add `led_trigger_notify_hw_control_changed()` to allow drivers to notify the
core of autonomous hardware control transitions
- Core: Add the `hw_offloaded()` trigger callback and `trigger_may_offload_to_hw` sysfs
attribute to expose hardware-offloaded triggers
- Netdev Trigger: Implement the `hw_offloaded()` callback to report hardware control
state to the LED core
- Analog Devices LTC3208: Add support for the LTC3208 7-channel multi-display I2C LED
driver
- ChromeOS EC: Implement the `hw_offloaded()` callback for the `chromeos-auto` trigger
- CZ.NIC Turris Omnia: Implement the `hw_offloaded()` callback and declare `omnia-mcu`
as a hardware control trigger
- STMicroelectronics ST1202: Add hardware-accelerated blink support via `blink_set()`
- Improvements & Fixes
- Class: Always hold the `led_access` mutex in `brightness_show()` to avoid exposing
transient registration states
- Class: Deactivate active hardware control triggers when writing to the `brightness`
sysfs attribute
- Core: Enforce strict validation in `led_trigger_is_hw_controlled()` and warn on legacy
fallback paths
- Flash Class: Initialize the fault variable in `flash_fault_show()` to prevent
undefined behavior when callbacks perform bitwise ORs
- Kinetic KTD2692: Pass the driver context directly to `regulator_disable_action()` to
prevent a NULL pointer dereference during error unwinding
- Maxim MAX77705: Use `fwnode_for_each_child_node_scoped()` in `max77705_add_led()` to
prevent child node reference leaks on error paths
- NXP PCA9532: Check the return value of `i2c_smbus_read_byte_data()` in
`pca9532_getled()` to avoid integer underflow on read errors
- Qualcomm WLED: Fix a NULL pointer dereference in `wled_remove()` by setting platform
driver data in `wled_probe()`
- Qualcomm WLED: Fix the WLED3 brightness register stride to prevent consecutive string
writes from overlapping
- Qualcomm WLED: Read back the hardware-programmed brightness at probe, expose it via
`get_brightness()`, and prevent unbalanced OVP IRQ enabling
- STMicroelectronics ST1202: Clear unused PWM pattern slots in `pattern_set()` and
`blink_set()` to prevent unintended output when sharing the global sequencer
- STMicroelectronics ST1202: Program and cap the channel current according to
`max_brightness` across brightness, blink, and hardware pattern modes, and scale
pattern brightness to the 12-bit PWM range
- STMicroelectronics ST1202: Retain a reference to each child LED firmware node for the
lifetime of the device
- STMicroelectronics ST1202: Use only the blocking `brightness_set_blocking()` callback
to avoid sleeping in atomic context during I2C transfers
- TI LM3692x: Check the final register write in `lm3692x_leds_enable()` to prevent
regulator/GPIO leaks and an inconsistent enabled state
- TI LP8860: Fix a `device_node` reference leak in `lp8860_probe()` using
`__free(device_node)`
- Cleanups & Refactoring
- Core: Move `led_trigger_is_hw_controlled()` and `led_trigger_group` from `led-class.c`
into `led-triggers.c`
- Core: Replace conditional `set_bit()`/`clear_bit()` patterns with `assign_bit()` and
`__assign_bit()`
- Flash Class: Simplify `flash_fault_show()` using `sysfs_emit_at()` and omit the
trailing space
- Maintainers: Add Griffin Kroah-Hartman as an LED subsystem reviewer
- Intel SS4200: Fix a spelling typo in a comment
- ISSI IS31FL32xx: Convert DT-specific parsing helpers to generic device and fwnode
property APIs
- NXP PCA955x: Drop redundant intermediate platform data and allocate the LED array
using a flexible array member
- Qualcomm LPG: Convert LED and channel parsing to fwnode APIs and avoid leaving
`default_trigger` uninitialized
- Skyworks AAT1290: Use `ARRAY_SIZE()` when allocating `mm_current_scale` to match the
target pointer type for type-aware allocators
- STMicroelectronics ST1202: Introduce a `st1202_iled_max()` helper to unify channel
current ceiling calculations
- STMicroelectronics ST1202: Standardize variable and macro naming, fix helper spelling,
and use `u8` consistently instead of `uint8_t`
- Syscon: Convert from OF-specific property helpers to the generic device property and
fwnode APIs
- Device Tree Binding Updates
- Core: Allow PHY RX triggers (`phy[0-9]+rx`) in `linux,default-trigger`
- Core: Standardize example indentation across multiple LED and backlight binding
schemas
- Analog Devices LTC3208: Document the LTC3208 multi-display LED driver
- LaCie netxbig: Convert LED bindings to DT schema
- Motorola CPCAP: Convert LED bindings to DT schemaLEDs for v7.4
- New Support & Features
- Core: Add `led_trigger_notify_hw_control_changed()` to allow drivers to notify the
core of autonomous hardware control transitions
- Core: Add the `hw_offloaded()` trigger callback and `trigger_may_offload_to_hw` sysfs
attribute to expose hardware-offloaded triggers
- Netdev Trigger: Implement the `hw_offloaded()` callback to report hardware control
state to the LED core
- Analog Devices LTC3208: Add support for the LTC3208 7-channel multi-display I2C LED
driver
- ChromeOS EC: Implement the `hw_offloaded()` callback for the `chromeos-auto` trigger
- CZ.NIC Turris Omnia: Implement the `hw_offloaded()` callback and declare `omnia-mcu`
as a hardware control trigger
- STMicroelectronics ST1202: Add hardware-accelerated blink support via `blink_set()`
- Improvements & Fixes
- Class: Always hold the `led_access` mutex in `brightness_show()` to avoid exposing
transient registration states
- Class: Deactivate active hardware control triggers when writing to the `brightness`
sysfs attribute
- Core: Enforce strict validation in `led_trigger_is_hw_controlled()` and warn on legacy
fallback paths
- Flash Class: Initialize the fault variable in `flash_fault_show()` to prevent
undefined behavior when callbacks perform bitwise ORs
- Kinetic KTD2692: Pass the driver context directly to `regulator_disable_action()` to
prevent a NULL pointer dereference during error unwinding
- Maxim MAX77705: Use `fwnode_for_each_child_node_scoped()` in `max77705_add_led()` to
prevent child node reference leaks on error paths
- NXP PCA9532: Check the return value of `i2c_smbus_read_byte_data()` in
`pca9532_getled()` to avoid integer underflow on read errors
- Qualcomm WLED: Fix a NULL pointer dereference in `wled_remove()` by setting platform
driver data in `wled_probe()`
- Qualcomm WLED: Fix the WLED3 brightness register stride to prevent consecutive string
writes from overlapping
- Qualcomm WLED: Read back the hardware-programmed brightness at probe, expose it via
`get_brightness()`, and prevent unbalanced OVP IRQ enabling
- STMicroelectronics ST1202: Clear unused PWM pattern slots in `pattern_set()` and
`blink_set()` to prevent unintended output when sharing the global sequencer
- STMicroelectronics ST1202: Program and cap the channel current according to
`max_brightness` across brightness, blink, and hardware pattern modes, and scale
pattern brightness to the 12-bit PWM range
- STMicroelectronics ST1202: Retain a reference to each child LED firmware node for the
lifetime of the device
- STMicroelectronics ST1202: Use only the blocking `brightness_set_blocking()` callback
to avoid sleeping in atomic context during I2C transfers
- TI LM3692x: Check the final register write in `lm3692x_leds_enable()` to prevent
regulator/GPIO leaks and an inconsistent enabled state
- TI LP8860: Fix a `device_node` reference leak in `lp8860_probe()` using
`__free(device_node)`
- Cleanups & Refactoring
- Core: Move `led_trigger_is_hw_controlled()` and `led_trigger_group` from `led-class.c`
into `led-triggers.c`
- Core: Replace conditional `set_bit()`/`clear_bit()` patterns with `assign_bit()` and
`__assign_bit()`
- Flash Class: Simplify `flash_fault_show()` using `sysfs_emit_at()` and omit the
trailing space
- Maintainers: Add Griffin Kroah-Hartman as an LED subsystem reviewer
- Intel SS4200: Fix a spelling typo in a comment
- ISSI IS31FL32xx: Convert DT-specific parsing helpers to generic device and fwnode
property APIs
- NXP PCA955x: Drop redundant intermediate platform data and allocate the LED array
using a flexible array member
- Qualcomm LPG: Convert LED and channel parsing to fwnode APIs and avoid leaving
`default_trigger` uninitialized
- Skyworks AAT1290: Use `ARRAY_SIZE()` when allocating `mm_current_scale` to match the
target pointer type for type-aware allocators
- STMicroelectronics ST1202: Introduce a `st1202_iled_max()` helper to unify channel
current ceiling calculations
- STMicroelectronics ST1202: Standardize variable and macro naming, fix helper spelling,
and use `u8` consistently instead of `uint8_t`
- Syscon: Convert from OF-specific property helpers to the generic device property and
fwnode APIs
- Device Tree Binding Updates
- Core: Allow PHY RX triggers (`phy[0-9]+rx`) in `linux,default-trigger`
- Core: Standardize example indentation across multiple LED and backlight binding
schemas
- Analog Devices LTC3208: Document the LTC3208 multi-display LED driver
- LaCie netxbig: Convert LED bindings to DT schema
- Motorola CPCAP: Convert LED bindings to DT schema
MFD for v7.4
- New Support & Features
- Cirrus Logic CS42L43: Add support for the CS42L44 variant
- Khadas MCU: Add support for the VIM4 MCU variant along with per-variant fan duty-cycle
levels and optional fan supply regulator support
- Maxim MAX77705: Add support for the PASS2 hardware revision
- MediaTek MT6397: Add AUXADC sub-device support for MT6397
- Motorola CPCAP: Support per-board sub-device compositions and add the Tegra20 Mot
composition
- ROHM BD73800: Add support for the BD73800 PMIC core, regulator, RTC, clock gate, and
GPIO sub-devices
- TI LM3533: Add VIN regulator supply support, configure initial backlight mapping mode
from Device Tree, and implement the `backlight_scale` property
- X-Powers AC200: Add support for the AC200 I2C mixed-signal companion IC
- Improvements & Fixes
- Cirrus Logic CS42L43: Synchronize SoundWire enumeration work in `remove()` before
devres cleanup begins
- Dialog DA903x: Manage IRQ work cancellation and sub-device removal via devres to
prevent use-after-free during teardown
- Dialog DA9150: Balance `enable_irq_wake()` with `disable_irq_wake()` during probe
failure and driver removal
- Intel LPSS: Add DMI quirks for Dell Latitude 5285 and 7275 to ignore ACPI resource
conflicts on the I2C4 controller
- Intel Quark I2C/GPIO: Manage the fixed-rate clock and its clkdev lookup with devres to
fix a resource leak on unbind
- Maxim MAX77705: Select `REGMAP_I2C` and `REGMAP_IRQ` in Kconfig to fix build errors
- Qualcomm WCD934x: Initialize the parent DMA mask to suppress "DMA mask not set"
warnings on child devices
- Qualcomm WCD934x: Pass the valid device pointer to `dev_err_probe()` on IRQ lookup
failure to avoid a NULL pointer dereference
- Rockchip RK8xx: Register the poweroff handler in the atomic `SYS_OFF_MODE_POWER_OFF`
phase so polling I2C transfers complete during shutdown
- ST-Ericsson AB8500: Use `devm_mfd_add_devices()` to prevent leaking child devices on
probe failure
- TI BQ257xx: Mark self-modifying BQ25792 configuration registers as volatile
- TI LM3533: Set `coherent_dma_mask` to zero to suppress "DMA mask not set" warnings
- TI TPS65217: Check for errors during IRQ initialization and masking, and manage IRQ
domain and wake teardown with devres
- TI TWL: Unregister the auxiliary platform device via a devres action on probe failure
and driver unbind
- Cleanups & Refactoring
- Core: Convert drivers from deprecated `SIMPLE_DEV_PM_OPS()` to
`DEFINE_SIMPLE_DEV_PM_OPS()` and `pm_sleep_ptr()`
- Core: Fix spelling mistakes in comments across various MFD drivers and headers
- Maintainers: Add ROHM BD73800 PMIC files under the ROHM PMIC entry
- Maintainers: Specify the `for-mfd-next` branch for the MFD and Syscon git trees
- Dialog DA9062: Use `DEFINE_RES_IRQ_NAMED()` for IRQ resource definitions
- Intel LPSS: Simplify DebugFS handling by dropping redundant error checks and
intermediate dentry variables, using octal permissions, and switching to
`debugfs_remove()`
- Khadas MCU: Convert MFD cell arrays to `const` and use `MFD_CELL_NAME()`
- ST-Ericsson AB8500: Fix a spelling typo in a comment
- TI LM3533: Convert from platform data to Device Tree bindings and pass only regmap and
light sensor presence to child devices
- TI LM3533: Remove driver-specific regmap wrappers, redundant pdata helpers, and
unnecessary `extern` qualifiers, and use `dev_groups` for sysfs attributes
- Wolfson WM831x: Fix a spelling typo in a comment
- Device Tree Binding Updates
- HiSilicon Hi6421 SPMI: Fix the compatible string to match `hisilicon,hi6421-spmi`
- MediaTek MT6357: Allow an `adc` child node
- MediaTek MT6360: Allow two-cell interrupt specifiers with trigger flags
- MediaTek MT6397: Document the `#sound-dai-cells` property
- MediaTek MT6397: Document the battery-backed NVMEM layout under the RTC child node
- MediaTek MT6397: Document the MT6323 PMIC EFUSE child node
- Motorola CPCAP: Convert MFD and power button bindings to DT schema and document the
Mapphone and Mot compositions
- Qualcomm SPMI PMIC: Document the PM4125 audio codec compatible
- Qualcomm SPMI PMIC: Document the PMAU0102 PMIC compatible
- Qualcomm TCSR: Document the MSM8952 TCSR compatible
- Rockchip RK805: Fold the pin controller binding into the RK805 PMIC DT schema
- ROHM BD73800: Document the BD73800 PMIC and its regulators
- ROHM PMIC: Factor out common pin properties into `rohm,pmic-pins.yaml` and reference
them across BD71815, BD71828, and BD72720 bindings
- ST-Ericsson AB8500: Document AB8500 and AB8505 buck converter regulators
- ST-Ericsson AB8500: Document codec audio graph ports, sound DAI cells, and analog
microphone wiring properties
- ST-Ericsson DB8500 PRCMU: Deprecate the `db8500-prcmu-regulators` child node and make
it optional
- Syscon: Document the Ambarella CV75 secure scratchpad compatible
- TI BQ25703A: Add the BQ25798 compatible with fallback to BQ25792
- TI Keystone: Convert Device State Control bindings to DT schema
- TI LM3533: Document the LM3533 LED controller, backlight, and indicator LED bindings
- TI LP3943: Convert MFD and PWM bindings to DT schema
- TI TPS61050: Convert bindings to DT schema
- TI TPS65086: Make the `regulators` child node optional
- TI TPS65910: Document `wakeup-source` and GPIO hog child nodes
- TI TWL6040: Convert bindings to DT schema and align property names with the driver
- X-Powers AC200: Document the AC200 mixed-signal companion IC
A mix of platform driver setup, fixes, cleanup and config update. Platform code added for the ColdFire 54418 RNG hardware block. Also PWM address definitions for the 54418. A fix for seccomp filter processing during system call entry and a fix for compiling the Cleopatra board target. A config update for the stmark board, and lastly a couple of typo fixes. Regards Greg m68knommu: updates and fixes for v7.4 . plaform RNG driver for ColdFire 54418 . PWM address defines for ColdFire 54418 . fix secomp filtering . fix compile breakage for Cleopatra board . update stmark defconfig . remove unused header . fix typos
This is a small set of fixes: error handling corrections in the DAX core and bus code, a fix to the DAX file range comparison helpers, and two libnvdimm/pmem fixes for error and probe failure paths. These have all appeared in -next for at least 6 days. Thank-you, Alison --- NVDIMM and DAX for v7.4 DAX fixes: dax: fix wrong error code returned from dax_dedupe_file_range_compare() dax: fix dax_range_compare_iter() to use correct size and address offset dax: Return errors from dax_core_init() dax/bus: Return errors for invalid mapping targets NVDIMM fixes: libnvdimm: Handle negative return from nvdimm_clear_poison() in nsio_rw_bytes() nvdimm/pmem: Release gendisk on probe failure
development cycle. I'm seeing a single conflict with current mainline, in arch/s390/kernel/traps.c. The linux-next resolution is at https://lore.kernel.org/[email protected] Thanks. mm.git review status for linus..mm-nonmm-stable Total patches: 134 Fixes: tags: 86 cc:stable patches: 52 Reviews/patch: 0.73 Reviewed rate: 59% Summary of patch series in this merge: - "ocfs2: exit recovery thread on mount error path" (Joseph Qi): Stop OCFS2 recovery before freeing failed-mount state and replay slots, closing use-after-free and double-free races. Defer suballocator reclaim to break a transaction-lock deadlock with dismount. - "ocfs2: validate suballoc slot and bit of metadata blocks" (Joseph Qi): Validate OCFS2 metadata suballocator slots, bits and directory index block locations. Reject corrupt metadata with filesystem errors instead of BUGs or out-of-bounds accesses. - "ocfs2: deal with legacy signed name hash values" (Joseph Qi): Restore OCFS2 lookups for non-ASCII names stored with legacy signed hashes. Use stored xattr hashes during bucket splits to avoid duplicate entries and spurious ENOSPC failures. - "ocfs2: stabilize dentry names in file and setattr traces" (Cen Zhang): Snapshot OCFS2 names during file and setattr tracing to prevent rename races using freed storage or mismatched names and lengths. Preserve trace formats and the locked release open-count sample. - "panic: fix panic_force_cpu= redirect races and NMI bypass" (Bradley Morgan): Fix panic_force_cpu races and NMI redirection so crash-kernel CPU selection is honored. Preserve variable arguments on failed redirects and use a static message buffer. - "fat: allocate multiple clusters in fallocate" (Matheus Alves de Almeida): Allocate FAT clusters in batches for FALLOC_FL_KEEP_SIZE and batch FAT updates. This removes repeated single-cluster allocation overhead, particularly on synchronous mounts. - "scripts/gdb: fix radix tree lookup and stack depot diagnostic" (Ting-Han Hou): Fix GDB radix-tree lookup and its handling of XArray sibling, retry and zero entries. Also repair the stack-depot diagnostic for an out-of-range pool index. - "hung_task: Improve warning budget handling and task reporting" (Aaron Tomlin): Reset the hung-task warning budget after recovery so later hangs remain visible. Keep the configured limit intact and emit one summary per scan when detailed reports exhaust the budget. - "bootconfig: Reject unexpected data after null character and cleanups" (Masami Hiramatsu (Google)): Reject bootconfig data after an embedded null while accepting trailing padding. Validate the full input in the userspace tool, and retain internal tree sanity checks there rather than in the kernel. - "kbuild: GCOV cleanups following the prefer-atomic fix" (Konstantin Khorenko): Use the actual GCOV build flags in the prefer-atomic compiler probe. Move flag setup into scripts/Makefile.gcov and skip the probe when GCOV is disabled. - "ocfs2: xattr bucket validation fixes" (Joseph Qi): Accept valid OCFS2 xattr buckets spanning 512-byte blocks, avoiding false read-only remounts. Reject misaligned buckets and return errors instead of panicking on corrupt defrag metadata. - "ocfs2: fix metadata reservation for xattr value trees" (Joseph Qi): Reserve enough OCFS2 metadata for new and relocated xattr value trees. Fix shortfalls which could cause ENOSPC, dropped entries and leaked clusters on fragmented filesystems; remove duplicate reservations. - "Introduce arch_do_panic" (Mete Durlu): Add arch_do_panic() and move s390 and sparc handling out of generic panic code. The architecture-specific actions now follow the end-of-panic marker. - "checkpatch: userspace improvements" (Petr Vorel): Improve checkpatch's userspace detection and suppress kernel-only checks. Recognize standard inttypes macros and add explicit --userspace and --no-userspace overrides. - "ocfs2: validate dr_fs_generation of dir index root blocks" (Joseph Qi): Check OCFS2 directory index generations and leaf block numbers. Reject stale or misplaced blocks instead of using metadata left by a previously formatted filesystem. - "selftests/membarrier: Skip an unregistered memory barrier test on Musl" (Chris Gellermann): Skip the unregistered membarrier test when libc has already registered the command. Musl does this during thread creation, causing false failures in the multithreaded test. - "init: fix array boundary bugs in boot parameter parsing" (Wilson Felipe Pereira): Fix boot argument boundary cases which leave stale arguments in init's command line or panic when replacing the final environment variable. Clear the last slot and check duplicates before the limit. Summary of the 87 singletons in this merge: The OCFS2 singletons fix deadlocks between xattr updates and inline truncation, and during inode reclaim. Corrupt quota and extent metadata could also crash the kernel or corrupt memory; these paths now check the layout before using it. Other fixes close use-after-free and publication races around cluster reconfiguration, node failure, quota remount errors and shared refcount trees. New files now retain security labels from all stacked LSMs instead of silently dropping all but one. Valid xattr insertions also stop tripping FORTIFY on builds with counted arrays. Elsewhere, a lost wakeup could leave hardware-monitoring reads stuck in unkillable sleep and block further I2C traffic. That is fixed, as are kernel memory leaks in POSIX message-queue notifications and tmpfs casefold setup which could grow until memory is exhausted. A driver removal race which could crash the kernel is fixed too. The hibernation command through reboot() also stops taking the same mutex twice, avoiding a deadlock before suspension. On the boot side, bzip2 decoding now accepts valid full blocks emitted by lbzip2, fixing failures to boot those compressed kernels. Malformed bzip2 streams can no longer overflow the decode buffer, and LZ4 initrds are checked before the decoder can read past their end. FAT rejects geometry which overflows the data-area calculation on 32-bit systems, and rolls back entries when inode setup fails, preventing failed creations from reappearing after remount. The x86 XOR and RAID6 AVX paths also avoid imposing a slowdown on subsequent SSE code.
as anticipated, here is the second part of the I2C pull request
for v7.4.
This round introduces dynamic transfer timeouts in the I2C core,
already used by qcom-geni. There is also support for additional
transfer modes in imx and a handful of driver fixes.
I've also merged Igor's Rust I2C pull request, which removes an
unsafe conversion.
The branch is rebased on top of your part 1 I2C merge[*].
I'll now start queuing patches for a possible third week of the
merge window. Otherwise, they will go into v7.5.
Thanks and wishing you a good rest of your holidays,
Andi
[*] bb436f2a8568 ("Merge tag 'i2c-7.4-part1' ...")
i2c for v7.4, part 2
This second part introduces dynamic transfer timeouts in the I2C
core, already used by qcom-geni. Alongside some driver
improvements and fixes, it also brings in the Rust I2C pull
request.
Core:
- core, qcom-geni: add and use a dynamic timeout helper
- acpi: fix adapter reference leak when creating I2C clients
Drivers:
- imx: support reversed address direction and no-start transfers
- designware: queue block data reads once length is known
- mt7621: skip the second data register for chunks up to 4 bytes
- sh_mobile: ensure IRQs are freed before unmapping registers
Rust:
- Remove unsound device-to-client reference conversion
Hi, this pull request removes unused code of free space caching, disabled in 7.3 (545e560a5b0f "btrfs: disable v1 space cache"). It's been the original free space cache feature, superseded by free space tree (4.5) and mkfs default since 5.15. The grace period was sufficiently long, backward compatibility still exists with a performance impact, effectively as if mounted with '-o nospace_cache'. This is a separate pull as there were a few iterations based on sashiko feedback, but 90% of the code has been in linux-next within the pre-merge window period. Too late I noticed a glitch in the branch, unrelated commit "btrfs: fix use-after-free on quota enable allocation failure" is duplicated due to addition of reviewed-by to the original base (no code change). If anything of that is a problem, postponing the merge is also fine for us. Please consider pulling, thanks.
Please consider pulling the kernel API specification framework. It has been discussed on the lists for over a year: five RFC rounds starting in June 2025, then v1 through v5 this year, the last on October 8: https://lore.kernel.org/all/[email protected]/ The branch has been in linux-next since next-20261009. I held off on sending this until the first week of the merge window was over, to let things calm down. There are two conflicts with what you already merged. linux-next resolved both the same way: - Makefile: kbuild added '*.header-check' to the clean rule at the same spot where this adds '*.apispec.h'. Keep both lines. - fs/open.c: vfs added filp_close_sync() just above sys_close(), which is where this adds the sys_close() kerneldoc. Keep filp_close_sync(), then the new kerneldoc, then the existing "Careful here!" comment and SYSCALL_DEFINE1(close). Kernel API specification framework for v7.4 The contract of a kernel interface (which arguments are valid, which errors come back and why, what context it can be called from, what it locks and what it changes) only exists as prose in man pages and comments, which tools cannot check. This adds a way to write that contract down in a form that tools can consume, next to the code it describes. A spec is structured kerneldoc covering parameter types and constraints, return values and error codes, execution context, locking, signals, capabilities and side effects. At build time kernel-doc turns it into C data in a dedicated section of vmlinux. From there a spec can be: - checked against syscall arguments and return values at runtime by CONFIG_KAPI_RUNTIME_CHECKS, a DEBUG_KERNEL option for x86 and arches without syscall wrappers; a call that violates its spec fails with -EINVAL before the handler runs - read as JSON from debugfs - extracted from vmlinux, debugfs or the source with tools/kapi, which emits JSON, RST or plain text - followed with the kapi_syscall_enter/exit tracepoints The first specs cover open, close, read, write and madvise, with a KUnit suite and a selftest in tools/testing/selftests/kapi. Everything is behind CONFIG_KAPI_SPEC, which defaults to off. With it off the syscall definition macros expand as before, kernel-doc output is unchanged, and the only change to fs/ and mm/ is the kerneldoc text.
Thanks,
Guenter
------
hwmon updates for v7.4
* New drivers
- Axiado AX3000 and AX3005 PWM fan controller
- AX3000/AX3005 TSADC
- HONOR FMI-XX
- Minisforum UM780 XTX EC monitoring and fan control
- pmbus: MAX20826, MAX20855B, MAX20908, MAX20912, MAX20826, and MAX20916
- pmbus: Infineon TDA38740/TDA38725
* Added support to existing drivers
- asus-ec-sensors: ROG STRIX X670E-A GAMING WIFI and
ROG STRIX Z490-A GAMING
- asus_rog_ryujin: ROG Ryujin III 360
- dell-smm: Dell 16 DC16250, Dell OptiPlex 7090, Dell Precision 3650
Tower, Add Latitude 5420
- it87: IT8613E
- k10temp: 1ah/80h devices. Drop support for Hygon devices (support to be
re-added with separate patches later)
- lm63: Sensylink CTF2301
- nct6683: MSI MAG B550M MORTAR MAX WIFI, MSI MAG B650 TOMAHAWK WIFI,
MSI MAG B650M MORTAR WIFI (MS-7D76), and MSI MAG B850M MORTAR WIFI
- nct6775: NCT6122D and NCT6126D
- pmbus/isl68137: Renesas RAA229639 and RAA229640
- pmbus/max34440: ADPM12300
- pmbus/tps25990: TPS1689
- pmbus/tps53679: TPS53622, TPS53659 and TPS536C7
- pmbus/xdpe1a2g7b: xdpe1a2g7c
- sht4x: Sensirion STS4x
- socfpga: Agilex 5
- yogafan: Lenovo Yoga Pro 9 16IMH9, Yoga 14cACN 2021, IdeaPad 3 15ALC6 Ub,
Yoga 740-15IML
* Core updates
- Support for currX_emergency and inX_[l]emergency attributes
* Notable bug fixes and changes
- Add missing locks to corsair-cpro, ftsteutates, nct7904, and npcm750-pwm-fan
drivers
- Fix jiffies wraparound in tmp102 and tmp108 drivers
- Documentation updates (document missing chip support, typo fixes,
clarifications)
- pmbus/ltc4286: Add writable shunt_resistor sysfs attribute
- coretemp: Document sysfs numbering and label meaning, fix handling of
isolated SMT siblings, read TjMax only when refreshing the temperature,
refresh the temperature on the first read, and return -ENODATA for
invalid temperature readings
- spd5118: Avoid probing when 16-bit addressing is enabled, and select
page 0 unconditionally during probe
- arctic_fan_controller: Default PWM cache to MCU 40%, Dual-license
GPL-2.0-or-later OR BSD-2-Clause, and update maintainer address
* Various other minor bug fixes and improvements
this is my pull request with sh updates for v7.4. It contains fixes and imp= rovements for various boards as well as the generic sh kernel from six different auth= ors. Dmitry Torokhov has contributed three patches to help the boards mach-x3pro= to and ecovec24 get rid off the use of the old platform data API in the kernel. Fo= r the former board, software nodes are being used for gpio-keys now while for the= latter board, static device properties are used to describe the touchscreen. Florian Fuchs has contributed two fixes for the generic sh kernel, one is a= build fix when CONFIG_BUILTIN_DTB is enabled and the other fixes an issue with __get_= user_u64() and __put_user_u64() using wrong memory operands which could cause the kern= el build to fail with "invalid 'asm'" or an internal compiler error in GCC's change_= address_1. A single patch by Pengpeng Hou updates various default configuration files = of several boards to replace the removed CONFIG_USB_GADGET_M66592 with the new CONFIG_= USB_M66592 Kconfig option. Two patches by Karl Mehltretter fix two issues with the SH-7785LCR evaluati= on board which is actually one of the boards I personally use for testing kernel pat= ches. The first patch fixes a kernel memory leak which occurred as a result of th= e prio and sense lists being sorted too early in register_intc_controller() while the = second patch fixes the the registration of the PCA9564 controller so that the RTC works = properly again. A patch by Runyu Xiao fixes missing cookies when calling free_irq() in the = maple bus driver which ensures that IRQ handlers can be properly unregistered and the= kernel does not emit a WARN message. Finally, a patch by Waldemar Brodkorb selects BINFMT_FLAT_NO_DATA_START_OFF= SET for !MMU configurations such that there is no gap at the end of text and init runs w= hich causes the GOT register to point below the real GOT, so every GOT load reads the n= eighbouring slot and gets a wrong pointer. sh updates for v7.4 - sh: Select BINFMT_FLAT_NO_DATA_START_OFFSET for !MMU - sh: maple: Use the matching IRQ cookie when invoking free_irq() - sh: sh7785lcr: Register the PCA9564 controller as I2C bus 0 - sh: intc: Sort the prio and sense lists after filling them - sh: defconfig: Enable the current M66592 UDC symbol - sh: uaccess: Require offsettable operands for 64-bit user access - sh: Fix built-in DTB build with generic rule - sh: ecovec24: Use static device properties to describe the touchscreen - sh: mach-x3proto: Convert gpio-keys to software nodes - sh: mach-x3proto: Add software node for GPIO controller Thanks for pulling! Adrian
to receive updates for the input subsystem. You will get: - Updates to input core to reject parent device overrides on managed input devices so devres lifetime management is not split across different devices, along with fixes for da7280, drv2665, drv2667, and tps6507x-ts that were reparenting managed input devices, and removal of redundant parent assignments across multiple drivers - A fix in input core to always accept EV_SYN events in input_event() and input_inject_event() so events seeded before device registration are properly flushed by input_sync() - A fix in matrix-keymap helper to reject keycodes above KEY_MAX and prevent out-of-bounds bitmap writes - Fixes and cleanups for HP GSC PS/2 (gscps2) serio driver to resolve race conditions in port list management, ring buffer access, and interrupt handling, return IRQ_NONE for unhandled shared interrupts, and drop busy-waiting on transmit - Fixes for maple_keyb driver to correct inverted key press detection, implement open and close methods so polling only runs while the device is open, and clean up unused driver fields - Fixes for maplecontrol driver to emit EV_SYN after reporting events, only enable axes reported by the controller with corrected hat limits, and stop polling and clear the callback on close - Updates to maplemouse driver to stop polling and clear the callback on close and drop redundant driver data cleanup - Fixes for matrix_keypad driver reverting forced switching of row GPIOs to input mode that broke row interrupts on platforms with separate GPIO and interrupt pinmux functions, and propagating the actual error code from matrix_keypad_build_keymap() - A fix for st-keyscan driver to keep the interrupt disabled while the peripheral clock is gated off to prevent bus faults, along with probe error handling improvements - A fix for mms114 touchscreen driver to disable interrupts before synthesizing touch release events during suspend so concurrent interrupts do not leave stuck active touch slots - Updates to xpad driver to support GameSir Nova Lite controller - A number of updates to device tree bindings, including a new schema for Analog Devices AD7147 CapTouch controller, conversion of SiS 9200 I2C touchscreen binding to DT schema format, and allowing the wakeup-source property on Dialog DA9062 onkey - Other assorted driver cleanups, style fixes, and conversions, including switching to named initializers for acpi_device_id tables and converting cyttsp5 to DEFINE_SIMPLE_DEV_PM_OPS. Changelog: ---------
a/v7.4-1 For: - v4l2 core: improve subdev and pixformat kAPI; - v4l2 core: fix P010 format info and add Y12 format info; - v4l2 core: add fwnode_graph_for_each_endpoint_scoped(); - New sensor drivers: Sony IMX576; OmniVision OS02G10, OV05C10 and OG0VA1B; Samsung S5KJN5; Himax HM1246; - Maxim GMSL2/3: add support for MAX9296A, MAX96717, and MAX96724; - Intel IPU6: add support for IPU7, IPU7.5 and IPU8; - NXP: add support for i.MX95 CSI pixel formatter driver; - ITE: add driver for IT6625/IT6626 HDMI bridge; - Qualcomm: add CSI2 3ph DPHY driver; - Rockchip: add rk3576 MIPI capture vicap driver; - STM32 DCMIPP: Add STM32MP25 subdevices; - Lots of driver fixes and cleanups. =20 Regards, Mauro --- [GIT PULL for v7.4] media updates
Highlights: - Guarantee asynchronous packet and transaction callbacks in process context - Fill kerneldoc for transaction layer - Enable compiler-based context analysis for the transaction layer - Fix a reference count leak in the cdev layer - Add KUnit tests for the configuration ROM parser and generator - Misc fixes for kerneldoc and nosy-dump application Regards firewire updates for v7.4 - Guarantee asynchronous packet and transaction callbacks in process context Both the 1394 OHCI driver and the core transaction layer have been changed to guarantee that asynchronous packet and transaction callbacks are invoked in process context. In v6.17, the execution context depended on the transaction destination: callbacks for transactions destined for remote nodes were invoked from a workqueue, whereas callbacks for transactions destined for the local node or terminated due to internal errors were invoked in the transaction initiator's context. All such callbacks are now guaranteed to execute in process context, eliminating the need to account for different execution contexts when implementing callback functions. - Fill kerneldoc for transaction layer The above change guarantees a consistent execution context for packet and transaction callbacks, making it possible to document their execution context in kerneldoc. - Enable compiler-based context analysis for the transaction layer The core transaction layer is sufficiently complex that compiler-based context analysis can help detect invalid call paths. - Fix a reference count leak in the cdev layer A reference count leak was reported when a user space application delegated isochronous resource management. This issue has now been fixed. - Add KUnit tests for the configuration ROM parser and generator In recent years, questions have been raised about how the configuration ROM parser and generator handle boundary conditions and edge cases. KUnit tests have been added to verify their behavior in these situations. KUNIT_STATIC_STUB_REDIRECT is used to stub the transaction responder so that it returns the configuration ROM contents. - Misc fixes for kerneldoc and nosy-dump application
kexec: updates for 7.4-rc1
* Fix probe error codes and error propagation:
* make architecture functions that probe loaded image consistenly return
-ENOEXEC when they do not recognize the image format
* Make kexec_image_probe_default() to distinguish image format mismatches
(-ENOEXEC) from real errors (e.g. -ENOMEM), propagating real errors
immediately and only continuing to the next loader on -ENOEXEC
* Make sure the next kernel does not land on hardware-poisoned pages
* Remove unused arch_kexec_locate_mem_hole hook
MM: fix huge TLB handling OCTEON: correct register access for CN6xxxx SOCs provide DTs for platforms where U-Boot doesn't have a DT Decstation: fix 64bit kernels build cleanups Others cleanups and fixes
This is ntfs update pull request for v7.4-rc1. I add a description of Thanks! New features: - Implement ioctls to list, read, write, and remove named streams on files and directories. Provide optional file:stream pathname access through streams_interface=3Dwindows, exposing streams as regular file descriptor= s with support for mmap, locking, truncation, and allocation. - Support file attribute queries and updates through FS_IOC_GETFLAGS and FS_IOC_SETFLAGS. Store immutable, append-only, nodump, and noatime settings in the private $LINUXFLAGS extended attribute and restore them when loading inodes. Also report compression, encryption, and the mount-wide case-folding policy as read-only attributes. Other changes: - Expose the existing NTFS volume serial number through FS_IOC_GETFSUUID by registering it as an eight-byte filesystem identifier. - Validate MFT I/O geometry and write MFT records and mirror data through mapped I/O units, keeping neighboring records intact when multiple records share a native 4Kn block. Track folio writeback until all BIOs complete, serialize raw record updates against writeback, and use the caller's requested completion mode. - Discard stale uninitialized cache data before extending initialized size, ensure shared mmap writes update initialized size after native 4Kn size extension, and synchronize attribute inode sizes after internal resizes. Keep VFS and NTFS sizes consistent when write-error rollback fails and record the volume error. - Wait for existing folio writeback before updating attribute data, require page alignment for full-page write optimizations, and include the final partial cluster in synchronous writes. Skip duplicate VFS page-cache truncation under the MFT record lock to avoid a truncate and writeback deadlock. - Restart allocation zone searches after failed hints and prevent contiguous allocation requests from returning additional disjoint runs that callers leave uninitialized. Allow fallocate after MFT-zone exhaustion and interrupt allocation loops only for fatal signals, avoiding spurious interruptions from io_uring task-work notifications. - Wait for the initial bitmap scan before extending the MFT bitmap, bound direct allocation candidates by the volume size, update free-space accounting, and undo only newly allocated clusters after run coalescing. Update attribute-list inode size before reserving additional space. - Hold runlist locks while expanding non-resident attributes, balance locks during MFT extension error handling, and avoid pointers invalidated by runlist reallocation. Keep source runlists available for rollback and allocate enough room for runlist markers and terminators. - Return errors for unmappable runlist fragments instead of treating them as holes or delayed allocation. Check non-resident attribute sizes against their allocation and fail mounts when $MFT needs extent records outside the decoded runlist to describe itself, preventing silent zero reads and mount hangs. - Load and validate $BadClus:$Bad at mount time and reserve known bad clusters before the free-space scan. Fall back to read-only operation when bad-cluster metadata cannot be validated and prevent subsequent read-write remounts. - Serialize volume flag updates and retain the dirty bit after metadata changes while the volume remains mounted read-write. Persist recorded errors after final metadata commits, fail ordinary read-only remounts on sync, commit, or flush errors, and retain the dirty bit on forced remounts. - Flush the device write cache when syncing directories and report flush failures from both file and directory fsync. Drain in-flight direct I/O before buffered write fallback and keep nonblocking requests from entering the blocking fallback path. - Mount hibernated volumes, or volumes whose hibernation state cannot be determined, read-only regardless of the errors=3D policy. Prevent mount-time and dirty-state updates from modifying hibernated volumes. - Validate complete EA chains, link zero-terminated tails when appending entries, retain the EA presence flag, and distinguish empty values from removal. Propagate lookup, write, and truncate errors, restore both EA attributes after failed updates, and shut down the volume if restoration fails. - Restore the previous ACL xattr when a subsequent WSL mode update fails, including replacement and removal cases. Record rollback failures so an unsuccessful permission change cannot silently leave inconsistent ACL and mode state. - Apply MST fixups to individual index blocks on large-page systems and use fixed 512-byte VCN units when an index block is smaller than its cluster. Support lookup and removal of POSIX names containing Windows-invalid characters and identify directory symlinks and junctions during enumeration. - Report the stored creation time for symbolic links through statx() when querying the link itself with AT_SYMLINK_NOFOLLOW. - Use wider decompression offsets to avoid overflow on 64 KB pages, accept the standard sparse compression unit, and require the compressed-size field only on the first attribute extent. Block direct reads and skip readahead for encrypted files to prevent returning raw ciphertext. - Validate index entry offsets, logfile update sequence array counts, attribute-list sizes, and index collation key lengths to prevent out-of-bounds accesses, NULL pointer dereferences, and excessive allocations from corrupt volume metadata. - Derive FITRIM bitmap indexes from the page size and retain the full 64-bit minimum discard length. Balance highmem mappings in logfile and MFT mirror checks and propagate specific errors from extent, attribute, and reparse operations. - Compare streams_interface with the mounted volume's setting during remount, make named-stream UAPI padding explicit, document stream access and Linux file attributes, and add the NTFS UAPI header to MAINTAINERS.
This is ksmbd server update pull request for v7.4-rc1. I add a description = of Thanks! - Add extended SMB2 directory information support. Implement FileIdExtdDirectoryInformation, FileId64ExtdDirectoryInformation, FileId64ExtdBothDirectoryInformation, FileIdAllExtdDirectoryInformation, and FileIdAllExtdBothDirectoryInformation, including reparse tags, file attributes, and initialized response padding. - Track unsigned 64-bit lock ranges in the server lock index, with conflict detection, blocking waits, cancellation, rollback, and cleanup for ranges beyond the VFS signed-offset limit. - Add configurable per-connection session limits. Reserve slots for new sessions and multichannel bindings, release them during failure and cleanup, and expose the configured limit through procfs. - Validate POSIX negotiate and CREATE contexts, including payload lengths, extension tags, duplicate contexts, dialect requirements, and share eligibility. Require POSIX opens for POSIX file, directory, and filesystem information queries. - Apply requested POSIX create modes, including mode zero, and NFS mode ACEs with special permission bits. Enforce append-only writes and base byte-range lock checks on each open's POSIX state. - Complete POSIX metadata responses with filenames, file types, permission bits, and filesystem device identifiers. Query filesystem information through the requested open and report the filesystem fragment size and response length. - Validate SMB3 encryption transform flags and ensure decrypted compound requests use the session authenticated by the transform, including requests containing compressed payloads. - Serialize negotiation with receive processing, size CREATE responses for their contexts, reserve UTF-16 terminator space in stream information, and validate WRITE data against the active compound request to prevent buffer overruns and stale-data writes. - Validate security descriptor offsets before pointer arithmetic, handle DACL offset overflow on 32-bit systems, and propagate inode ACL lookup failures safely. - Deny access through empty DACLs while retaining the owner's implicit security-management rights. Add KUnit regression coverage for DACL walk boundaries and maximal-access calculations. - Validate RPC pipe ownership for IPC$ reads and writes, and fix FSCTL_PIPE_TRANSCEIVE handle lookup and response file IDs. - Fix durable reconnect path validation for symlinked share paths, shares exporting "/", and handles opened at the share root. Check path boundaries before comparisons to prevent out-of-bounds reads and cross-share confusion. - Rebind completed durable CREATE replays to surviving channels without draining unrelated requests on the old channel. Transfer open accounting with the binding and avoid consuming additional open-file budget during durable reconnects. - Scope AppInstanceId takeovers to the matching share, path, stream, and client identity. Check access and AppInstanceVersion before closing an existing open. - Retry oplock and lease break notifications through other live channels, track queued TCP delivery, serialize acknowledgment updates, and expire unacknowledged breaks while waking blocked requests. - Keep lease tables and byte-range lock indexes independent of their original connection so surviving channels and detached durable opens retain access to lease and lock state. - Reclaim ended sessions after logoff and expiration, hold connection references for session channels, and drain procfs readers before releasing session table references. Avoid deadlocks during previous-session teardown and connection scavenging. - Prevent file publication after tree disconnect and retain tree references until final file release. Take parent dentry references during directory enumeration and serialize directory emptiness checks with readdir. - Prevent share-root removal through empty removal paths and return appropriate errors for directory zero-data requests and temporary directory attributes. - Fix named-stream writes, EOF changes, end-of-file reads, and content copying into rename targets. Reuse existing xattr names, report sizes by exact xattr name, and avoid emptying streams after lookup or permission failures. - Round allocation requests to the advertised allocation unit and avoid allocation changes that leave on-disk EOF inconsistent with the in-memory size. - Inherit FileIds across related compound requests, including CHANGE_NOTIFY, and use the existing async request machinery for notify waiting and cancellation. - Restore share configuration and Kerberos authentication compatibility with released ksmbd-tools. Advertise extended session security for raw NTLMSSP when requested by the client. - Improve Windows chained-compression compatibility, synthesized AFP_AfpInfo headers, generated short names, and UTF-16 alignment in partial normalized-name responses. - Fix interface-query locking, response chaining, link-speed reporting, and independent IPv4/IPv6 address enumeration. Display native IPv6 client addresses accurately in procfs. - Improve SMB Direct socket cleanup by reclaiming failed pending connections, skipping failed sockets during accept, avoiding indefinite disconnect waits, and handling unexpected receive opcodes without triggering kernel warnings. - Select CRYPTO_AES for SMB3 encryption, replace deprecated system workqueues, and update feature status documentation and POSIX specification references.
This is exfat update pull request for v7.4-rc1. I add a description of Thanks! - Use the recalculated append position when advancing valid_size, dirty all pages involved in valid-data extension, and zero invalid tails on partial overwrites. Write-protect the folio spanning the old EOF and zero its post-EOF range when extending a file, ensuring subsequent mmap writes advance valid_size. - Make valid_size and zeroed_size atomic to prevent torn reads and lost updates. Hold the invalidate lock during truncation, and drain in-flight direct I/O before buffered writes, buffered fallback, and page-cache operations that extend valid_size. - Fall back to single-cluster allocation when a buffered write cannot allocate its entire range, allowing writes to consume the remaining free space and return a short count. - Free clusters allocated beyond EOF after failed or short writes to prevent leaked space and spurious ENOSPC errors on later writes or file extensions. - Clean block-device buffer aliases when allocating clusters so delayed directory metadata writeback cannot overwrite file data after cluster reuse. - Update used_clusters as each cluster is allocated so partial-allocation cleanup keeps free-space accounting consistent. Acquire bitmap_lock before checking available space to serialize the check with allocation. - Use swap-specific iomap operations to report allocated extents beyond valid_size as unwritten during swap activation, retaining byte-accurate SEEK_HOLE and SEEK_DATA reporting in regular I/O. - Check allocation flags, vendor GUIDs, cluster numbers, data lengths, and contiguous extents in Vendor Allocation directory entries. Read complete entry sets during lookup so malformed trailing entries cannot bypass validation. - Follow directory FAT chains to their actual end when the recorded size is too small, supporting devices that leave directory sizes stale. Handle reads after seeking past the directory end. - Clear the volume dirty flag during remount only when switching to read-only without SB_FORCE. Update percent_in_use when changing volume flags, reporting unknown usage while the volume is dirty or persistent flags prevent marking it clean. - Replace runtime division by powers of two with bit operations. - Document supported mount options, and exfatprogs, and add the documentation path to MAINTAINERS.
[ Sorry for the late pull request, I was waiting for some last minute fixes= ] tracing updates for v7.4: - Add "within" to filter logic Add a way to trace events by what function they fall in. echo 'within =3D=3D "vfs_read" > events/sched/sched_switch/filter Will only trigger sched_switch events that happen within the vfs_read function. It uses a stacktrace at the event and checks if any entry is within the specified function and if so, it prints the event. - Remove a duplicate definition of ftrace_set_clr_event() from the header - Do not have ftrace_set_clr_event() modify its input buffer Have the buffer passed into ftrace_set_clr_event() to be const char * and not allow modifications to it that might cause side effects. - Add kunit tests for ftrace_parse_event_string() - Add filter argument to __ftrace_set_clr_event() Make it possible to set a filter on an event at the same time it is enabled. - Add event filtering logic to the kernel command line To allow filtering events on boot, allow filtering to be specified on the kernel command line when enabling events. - Rename "ring_buffer_size()" to "ring_buffer_capacity()" "size" refers to how much is allocated whereas the actual return value is the amount of available data in the ring buffer minus its meta data. - Rename "trace_array_entries" to "trace_array_capacity" There's several functions that use "entries" and returns the amount of data that that is usable. "entries" should be only for the number of events, not the amount of data. - Print the histogram "bucket" size as unsigned. If a bucket size is LONG_MAX, then it shows up as a negative number. - Show bucket size in output of histograms The output of what the histogram is shown doesn't show the size of the buckets when buckets are used. The output should be the same as the input and since specifying buckets without a size is an invalid command, the output to display what was entered should also show the size. - Fix stacktrace modifier output Only show the stacktrace modifier when it was specified in creation. - Unregister filed variable histograms when the command fails If one histogram references a variable of another histogram it registers that other histogram. But if the first histogram fails in setup after it registered the other histogram it doesn't unregister it. Have the first histogram add the reference to the other histogram so the failure clean up will unregister the second histogram too. - Fix 64-bit signed histogram fields on 32-bit kernels A fix to convert char * to u64 with added casting also incorrectly added an intermediate cast to convert a long value to u64 which ended up truncating the upper 32 bits for 32-bit kernels. Remove the intermediate typecast. - Print signed histogram keys as signed Histogram keys were being printed as unsigned and with signed keys it was giving the wrong output. - Use copy_from_user() and not __copy_from_user() in syscall tracing The syscall tracing incorrectly was using __copy_from_user() which could be an issue if the system trusts perf doing the trace. - Take trace_types_lock when recording a new module in persistent buffer When a new module is loaded, the persistent ring buffer saves it in its persistent memory. All the trace_arrays are iterated looking for any persistent buffer to add the module to. But it did not hold the trace_types_lock meaning a trace_array could be added or removed while iterating the list. - Only create tracepoint guest_halt_poll_ns when it is used The tracepoint guest_halt_poll_ns is defined in the power management code but it is only used when CONFIG_CPU_IDLE_GOV_HALTPOLL is enabled. This wastes memory when that config isn't enabled so wrap the tracepoint around that as well. - Handle empty fields for events in trace_event_get_offsets() The user events could have empty fields and this causes trace_event_get_offsets() to crash as it expects events to always have fields. Make the function handle events with no fields. - Reject incomplete event filter expressions If a filter has an incomplete expression (common_pid =3D=3D 1111 || ), it= will cause a out-of-bounds bug. Have the predicate_parse() only process the expression if it is complete. trace-v7.4
I double-checked that this is now in-sync with linux-next. I'll address this issue permanently by implementing linux-next validation to my script that prepares the PR, as that would have prevented this from happening. [GIT PULL] TPM DEVICE DRIVER changes for v7.4-rc1 I had to revise my pull request because it came out with a stale tag. Apologies for that. While at it I refined my scripts to not have coherency issues. All the content remains the same with no changes but I noticed one entry missing from the list in the next section, so I added that. FEATURES AND IMPROVEMENTS
As discussed at the Maintainer Summit, this is the first pull request from the new core MM tree. I'm a bit late due to travel. This cycle was primarily used to set up the core MM tree, move some smaller MM components into it, and establish the MM integration workflow for linux-next. For 7.4, MM updates will reach you through the slab, memblock, Andrew's MM, and my core MM trees. For the next cycle (7.5), we plan to route fewer patches through Andrew's tree and start merging the MM component trees (memblock, slab, core) into the new MM integration tree for upstreaming. In subsequent cycles, we'll gradually move more components from Andrew's MM tree into existing or new MM component trees, with the eventual goal of having a single MM integration tree for you to pull from. I'm using merge commits to: - Merge patch series, with the adjusted cover letter in the merge commit message. - Merge topic branches, with a summary of the changes in the merge commit message. The signed tag contains a high-level summary of the changes. Please let me know if anything looks odd or if you would prefer different summaries. There are no known conflicts with other trees. Cheers, David Core memory management updates for 7.4 This includes updates to: - MEMHP (Memory Hotplug) - GUP (Get User Pages) The main change is: - Reduce zone contiguity checking overhead during memory hot(un)plug (Yuan Liu) Other changes include smaller fixes along with various cleanups. Signed-off-by: David Hildenbrand (Arm) <[email protected]>
tpm: changes for v7.4-rc1 FEATURES AND IMPROVEMENTS
please pull sound fixes for v7.4-rc1 from:
The topmost commit is ed7995e4ec3789a90e37eb826bfccf43cc85d2fd
sound updates for 7.4-rc1
The AI flood continues, which brought us a fairly busy development
cycle again with changes spread across the subsystem, ranging from
(lots of) core hardening to new platforms and codecs.
Here are some highlights.
* ALSA core:
- PCM: race fixes around channel-map controls, draining/unlink, drop
sync-stop handling, and DMA buffer delay sync
- Compress-offload: state and geometry validations, buffer leak fix,
and stream/card lifetime management
- Jack: module pinning during debugfs access, control removal race
fix, and early injection exposure
- Timer & sequencer: module pinning for user timers, RCU grace period
wait on port deletion, UMP bounds fixes
- Mark OSS sequencer emulation as deprecated
- RawMIDI: proper disconnect handling and input work drain cleanup
- Control: fixes for vmaster racy setups and control callback
serialization, UAF fix on card disconnect
* ASoC core:
- Continued framework refactoring, deployment of
auto_selectable_formats across codecs and platform DAIs
- Generic card cleanup: free jack GPIOs on card remove for simple-card
and audio-graph-card variants
- SDCA improvements: SimpleJack function type support, library
helpers, and non-ACPI build support
- Conversion of deprecated DMA API calls
* ASoC SOF:
- Support for compressed audio playback on SOF IPC4 with Intel TGL+
- AMD ACP 7.B / 7.F SoundWire and PDM controller support, ASP carveout
firmware loading
- Function topology support for Intel I2S machines
* ASoC platforms & codecs:
- Qualcomm: New QAIF driver for Shikra platform, WCD9378 SDCA codec,
Nord Ride/RRD and Motorola Edge 30 boards, LPASS macro cache
converted to maple tree
- New codec drivers: ESS ES9039Q2M, Nuvoton NAU83G60 amplifier, Senary
SN624x SoundWire SDCA codec
- MediaTek / Airoha: New Airoha AN7581 AFE and WM8960 machine drivers,
extensive clock and error-handling cleanups across MediaTek SoCs
- NVIDIA Tegra: WM8994 machine driver and CS35L45 MDSYNC support
- Realtek: RT766/RT767, RT721_U, RT718 variants, RT712 GPIO LED
control
- Cirrus Logic: CS35L45 MDSYNC support, CS35L56 regmap default tests
- TI: TAS2573 DSP support in TAS2781, TAS2783 SoundWire fixes
- Everest Semi: ES8326 standby / HPF controls, ES8389 / ES8375 resume
fixes
- Removal of obsolete ST-Ericsson Ux500 MOP500 machine driver
* HD-audio:
- ACPI controller runtime PM suspend/resume support
- Controller shutdown and unbind race fixes for unsol events and jack
polling
- HDMI: High Bit Rate (HBR) audio capability enabled, ELD proc and
converter bounds checks
- AW88399 side codec SSID-specific firmware naming and Lenovo Legion
R9000P enablement
- Realtek / Conexant / Cirrus / TI quirks for numerous laptops
(Lenovo, ASUS, HP, Acer, HONOR, Minisforum, MSI, etc.)
- Creative CA0132 Sound BlasterX AE-5 external RGB LED strip support
* USB-audio:
- Dedicated mixer driver for Audient EVO4
- Native Instruments Kore controller LCD support and keymap fix
- Pioneer DJ DDJ-SZ and Roland (OCTA-CAPTURE / QUAD-CAPTURE multirate,
TD-11) support
- UAC2/3 mixer unit matrix evaluation and bounds checking
- Hardening for LINE6 and caiaq drivers against malformed packets and
races
- Device-specific quirks for PreSonus, TASCAM, Logitech, Mayflower,
MOONDROP, Yamaha, etc.
Misc:
- Auto-cleanup conversion for snd_card_free() and devres migration
across dozens of legacy PCI, ISA, and Sparc drivers
- ALSA loopback (aloop) timer lifecycle fixes and new aloop selftest
- pcmtest driver fixes and kselftest updates
[ Note that there can be a merge conflict in
sound/hda/codecs/side-codecs/cs35l41_hda.c
and the diffstat below is a result after conflict resolution ]
here is the main stash of pin control updates for v7.4. Nothing special really, some new drivers, the usual trickle of fixes. Oddly not even vary many LLM-assisted fixes, I guess they haven't found their way into this subsystem yet. Not even the merges are interesting, I think the branch ib-gpio-dir-imx was pulled into the GPIO tree. So: Boring. Nice. Yours, Linus Walleij Pin control bulk changes for the v7.4 kernel cycle: Core changes: - Support input-debounce-ns pin config property. New drivers: - Qualcomm: - Hawi SoC TLMM and LPASS LPI TLMM. - Kuno (ARM32!) SoC TLMM. - MSM8952 SoC TLMM. - PMAU0102 SPMIO GPIO. - Starfive JHB100 SoC sys0, sys0h, sys1, sys2, per0, per1, per2 per2pok and per3 (apparently strongly modularized silicon). - Ambarella CV75. - Apple T8140 SoC used in iPhone 16 [Pro] and MacBook Neo. - Econet EN7528. - Allwinner Sunxi A733. - Mediatek MT6735. Improvements: - Renesas RZ/3GL: SD channel PoC, I2C power source etc. - The SCMI pin controller uses generic helpers for handling groups and functions.
ring-buffer updates for v7.4: - Add Vincent Donnefort as ring-buffer maintainer Vincent has been doing a lot of updates to the ftrace ring buffer lately. I'm going to start delegating updates for the ring buffer to him. - Use RING_BUFFER_MIN_NR_PAGES instead of open coding the number 2 Instead of using the number 2 as the minimum number of pages that a ring buffer may have, create and use a macro RING_BUFFER_MIN_NR_PAGES. - Clean up the resize_disabled_checks There's duplication of code to check for resize disabled. Create a helper function rb_resize_disabled() and use that. Not only does it put the code in one place, it also removed a redundant check. - Remove unnecessary cpumask_test_cpu checks The loop for_each_buffer_cpu(buffer, cpu) only loops over CPUs in the buffer->cpumask. There's no reason to test if the CPU is set in that same loop. - Take cpus_read_lock() when changing the subbuf order A CPU coming on line for the first time allocates its CPU buffer. But if this happens while the subbuffer is being resized, it can cause an inconsistent state of subbufer sizes in the buffer. Add a cpus_read_lock() to ring_buffer_subbuf_order_set() to prevent this race. trace-ringbuffer-v7.4
mailbox tree and the mailbox.txt removal. Take the deleted files. Rob Devicetree updates for v7.4: - A bunch of improvements in dt-check-style. Fix various bindings based on these additional checks. - Convert hisilicon,hix5hd2-ir, hisilicon,hi6220-ade, hisilicon,hi6220-dsi, hisilicon,hip05-sas-v1, MediaTek RT5650 codecs, mediatek,g3dsys, mediatek,mt2701-scpsys, ti,omap-mpu, and ti,omap-ocp2scp to DT schema format - Add schemas for ST STM32MP2 DWC3 xHCI USB, ST STM32MP25 USB2-FEMTO PHY, spacemit,k1-gpu and spacemit,k3-gpu, HiSilicon local bus, HiSilicon HIP05 CPLD, SDMC DM2016, and QCom SM7250 and Kuno PDC - Various binding updates to fix schema warnings in .dts files - Drop obsolete .txt bindings for STM32(MP1) RCC, VExpress hwmon and regulator, and mailbox.txt - Remove the unused of_overlay_remove_all() function - Fixes for of_check_msi_parent() - Add "i2c-parent" tracking to fw_devlink
[ Note, there's a slight conflict with Masami's probes pull request as they both touch code in kernel/trace/trace_btf.h where one touches a parameter in a prototype and the other adds a new prototype near that location. It should be a trivial fix up. ] ftrace updates for v7.4: - Have the stacktrace option work with func-args The func_stack_trace option has it's own ftrace handler and so does the func-args option. When they are both set, neither would run. The function tracer itself would error out. Allow the stacktrace and function args to work together. - Avoid BTF lookup in atomic context The ftrace_dump() can call function graph tracing output from an atomic context (like an NMI watchdog going off). The BTF lookup is not safe to call from atomic context. Have btf_find_func_proto() return if in atomic context. - Build trace_btf.c when CONFIG_DEBUG_INFO_BTF is enabled New code is depending on trace_btf.c but that only gets built when BPF_SYSCALL is also enabled. As the new code doesn't depend on that, have trace_btf.c get built with just DEBUG_INFO_BTF set. - Have function graph return values have BTF processing Have the return values printed by the function graph tracer use BTF to print the values in better format. For example, if it's a char, short, signed or unsigned, print according to the value defined by BTF. - Add a "max" field to the function profiler stats The function profiler shows all the functions run in the kernel, the number of times they are called, and the total time they took up. Also add a "max" field which holds the longest time a function ran for. - Fix memory leak in module with all skipped functions On module load, the ftrace entries are recorded to keep track of what functions can be traced or not. Some functions may be skipped for various reasons (some defined by the architecture). If all functions in the module are skipped, its data page is not freed and can leak. Catch this case and free the empty page. - Allow architectures to reject functions from being traced Allow architectures to skip a function address by returning zero from ftrace_call_adjust(). - Initialize modname and offset in print_rec() The variables modname and offset are initialized by kallsyms_lookup(). If that fails, the values are not set, but the code continues to print other information. The modname and offset are used later, but if the kallsyms_lookup() failed, they will not be set. If a module is being loaded and unloaded at the same time as reading the available_filter_functions file, it can cause a fault due to the lookup failing and modname and offset being used uninitialized. trace-ftrace-v7.4
NFSD 7.4 Release Notes Jeff Layton extended the netlink listener-set operation so that a management daemon can register NFSD's programs with rpcbind itself. This prevents an unresponsive rpcbind from stalling NFSD adminis- tration for a minute at a time. Bulk delegation recall now adjusts the number of delegations it wants returned, based on memory pressure. The previous mechanism was spec-conformant, but it requested all delegations to be returned at once. Clients are free to return few or none in such cases, but requesting smaller batches of delegations is more neighborly. In preparation for handling TLS KeyUpdate, the server's TCP receive path has been reworked to handle control records. In the process, the use of sock_recvmsg was replaced with ->read_sock, which contends less with other holders of the socket lock. NFSv2 XDR code is now generated by xdrgen, which mechanically generates the encoders and decoders from the RPC language specification for the protocol. Replacing hand-built XDR code makes prototyping new protocol elements faster, reduces errors, and improves memory safety. Replacement of XDR code for newer NFS versions will continue in subsequent releases of NFSD. The remaining bulk of changes in v7.4 is bug fixes, clean-ups, and small optimizations. Sincere thanks to all contributors, reviewers, testers, and bug reporters who participated in the v7.4 NFSD development cycle.
that stand out: the kmalloc_obj*-style API for devm_kmalloc() (for which I'll be sending a separate tree-wide patch near the end of -rc1), and the seq_buf API clean-ups and improvements (which is expected to have a small follow-up fix coming). The things scattered around the tree outside of normal areas are mainly clean-ups and fixes related to both those topics. Thanks! -Kees hardening updates for v7.4-rc1 - Provide kmalloc_obj*-style API for devm_kmalloc() - Improve seq_buf API for saner C String handling with several bug fixes along the way (Kees Cook, Bill Wendling) - Overflow helper readability improvements (Bill Wendling) - Unexport native_write_cr4() (Dennis Chen) - um: fix CONFIG_GCOV for built-in code (Johannes Berg) - Improve stackinit test coverage (Justin Stitt) - KMSAN: fix memset() when using fortify-source, again (Arnd Bergmann) - lkdtm: use kmalloc() instead of __get_free_page (Mahad Ibrahim) - signalfd: don't dequeue the forced fatal signals (Oleg Nesterov) - Fix randstruct to recognize new container_of() behavior - coccinelle: kmalloc_obj: Convert multi-byte integral allocations too - Fix a couple remaining allocation return type mismatches
about the execve tests. Thanks! -Kees execve update for v7.4-rc1 - report the skipped binfmt_misc_bpf test on stderr (Sasha Levin)
improvements to USER_NOTIF behaviors. Thanks! -Kees seccomp updates for v7.4-rc1 - allow addfd to transfer O_PATH descriptors (Cong Wang) - allow restarting interrupted unreceived notifications (Cong Wang) - fix SECCOMP_ADDFD_FLAG_SEND when interrupted (Hui Peng) - Various docs and test clean-ups
error handling and corner cases. Thanks! -Kees pstore updates for v7.4-rc1 - don't leave an ERR_PTR in the ramoops zone pointer (Andrea Parri) - reject persistent RAM zones too small for the buffer header (Andrea Parri) - publish big_oops_buf after max_compressed_size (Jaidev Shastri)
I'm not aware of any pending conflicts with other trees (and I hope it's not just the lack of coffee speaking). This PR includes a significant number of low-priority fixes - especially in the NIC drivers area - that we deferred from the last few RCs in the previous cycle, which can't be easily outlined in the synopsis below. Networking changes for 7.4. Core & protocols
mailbox: updates for v7.4
- altera: shut down RX polling timer on channel teardown
- arm-mhu: timeout if receiver never comes up in mhuv2, keep combined IRQ
enabled during suspend in mhuv3, and drop redundant unregister on probe
failure in doorbell
- axiado: fix RX frame draining and error handling, and fix debugfs name
truncation warning
- bcm74110: cap rx_svc_init_list growth to prevent PMC-induced OOM
- hisilicon: convert Hi3660 and Hi6220 bindings to DT schema
- mtk-cmdq: fix runtime PM leak in cmdq_mbox_flush()
- pcc: free channel before unmapping shared memory and serialize channel
updates with teardown
- qcom: guard against NULL con_priv race in IPCC send_data, use dev_name()
for IRQ names, drop stray disable_irq_wake(), read 64-bit register with
readq() in CPUCP, drop redundant unregister on probe failure, and add
SDM670 and IPQ9650 APCS bindings
- rockchip: prefix register defines, simplify device variant handling, and
convert to use dev_err_probe()
- ti-msgmgr: add TDA54 main secure-proxy support and DT bindings, read exa=
ct
trailing bytes for non-word-aligned messages, and do not report RX poll
timeout as a send failure
- misc: use designated initializers for acpi_device_id across drivers
...to receive a series of changes for CXL. The headline item is the first part support for Dynamic Capacity Devices (DCD). It covers flagging DCD support in the mailbox, reading the dynamic capacity configuration from the device, gathering DSMAS data for the DCD partitions, and configuring the dynamic capacity interrupts. It also adds a documentation update and a cleanup that enforces partition ordering. DCD is not enabled yet with these code changes. Patches are applied to reduce the whole set in order to relief the burden of very large patch set review. Zero sized HDM decoders are now allowed, along with cxl_test support for them. There is also a set of decoder hardening patches for switch decoder enumeration. Latency calculations now account for link width and use consistent units. The GPF timeout programming has been reworked. The pull also has a number of misc patches. A large number of bug fixes against pre-existing issues make up the rest of the pull. Many of these were flagged by review of patches posted to the mailing list by sashiko. Also adding Richard Cheng as a reviewer (R) to the CXL sub-system. These have all appeared in -next for 5 days or more with no reported issues. --- CXL for v7.4 CXL Dynamic Capacity Device (DCD) support (part 1): cxl/mbox: Flag support for Dynamic Capacity Devices (DCD) cxl/mem: Read dynamic capacity configuration from the device cxl/cdat: Gather DSMAS data for DCD partitions cxl/events: Split event msgnum configuration from irq setup cxl/pci: Factor out interrupt policy check cxl/mem: Configure dynamic capacity interrupts cxl/core: Enforce partition order/simplify partition calls Documentation/cxl: Document DPA partition layout and ordering rules CXL zero sized decoder support: cxl/hdm: Allow zero sized HDM decoders tools/testing/cxl: Enable zero sized decoders under hb0 cxl/region: Simplify poison_by_decoder() error handling CXL decoder hardening: cxl/hdm: Reject switch decoder interleave ways that overflow targets cxl/hdm: Make switch decoder target parsing endian-safe cxl/hdm: Restore commit_end when decoder enumeration fails cxl/port: Bound switch decoder target array access by nr_targets cxl/pci: Skip reset detection for DVSEC emulated decoders CXL latency and GPF handling: cxl/port: Convert PCIe link latency to nanoseconds cxl: Account for link width in latency calculation cxl/acpi: Convert QTG _DSM latencies to picoseconds cxl/pci: Use the Device GPF DVSEC for restricted endpoints cxl/pci: Program the Port GPF timeouts before caching the DVSEC cxl/pci: Update only the Port GPF timeout fields CXL misc patches: MAINTAINERS: Add Richard Cheng to CXL subsystem as a Reviewer cxl: docs/platform/acpi: Fix brackets cxl/ras: Pass the PCI device's struct device to match_memdev_by_parent() cxl/test: Map mock device nodes to an online node tools/testing/cxl: Don't wrap cxl_core's own exported symbols cxl/region: Fix the return value in devm_cxl_add_region() kernel-doc cxl/region: Warn on user region position mismatch cxl/region: Create node access attributes for CFMWS-only NUMA nodes CXL fixes: cxl/events: Test CME counter expiry with equality, not bitwise AND cxl/events: Return IRQ_NONE when no event is pending cxl/port: Attach endpoints to a dport under the lock that pins it cxl/core: Hold the dport host lock across dport lookup and use cxl/port: Clear cached dport pointers when a dport is removed cxl/acpi: Check ACPI companion before use driver core: Add conditional guard support for device_trylock() cxl/memdev: Fix deadlock between poison debugfs and cxl_mem unbind cxl/core: Skip einj_inject creation when devm_add_action_or_reset() fails cxl/region: Unregister the pmem region when the bridge is unbound cxl/core: Fix dport use-after-free via the einj_inject debugfs file cxl/port: Fix uninitialized coordinates reported for RCDs cxl/cdat: Fix uninitialized stack use in bandwidth gathering cxl/features: Ensure that count is set before access to ent[] __counted_by() cxl/features: Reject feature offset that overflows 16-bit field cxl/fwctl: Propagate feature RPC delivery errors cxl/regs: Reject register blocks in an unassigned BAR cxl/region: Guard against a missing peer mapping cxl/mce: Avoid alias page retirement for corrected errors
please pull the latest livepatching changes from - Update maintainers list: added Joe and Song, removed Jiri - Prevent removing the livepatch module before releasing all kobjects - Ignore debug messages from other subsystems in livepatch selftests
Add support for buffered iomap support in ext4. This is not enabled by default, but requires the buffered_iomap mount option, as this mode does not support online defragmentation, inline data, fsverify, fscrypt, non-extent inodes, and data=journal mode. If buffered_iomap is enabled, ext4 will fall back to the original I/O code path automatically if necessary. Large writes show significant performance improvements when buffered iomap is enabled. There are also miscellaneous bug fixes and improvements, including for fast commit and avoiding deadlocks and out-of-bound reads when handling corner cases involving corrupted file systems.
TTY/Serial driver updates for 7.4-rc1
Here is the "big" set of tty and serial driver updates for 7.4-rc1.
It's not really all that big, it's been kind of quiet in this area of
the tree this development cycle in relation to other parts of the tree.
But still, included in here are:
- 8250 port updates and fixes
- 8250 driver cleanups by Jiri
- deletion of the obsolete moxa driver (making this pull request
remove more lines than added!)
- different serial driver updates for dma and other reported issues
All of these have been in linux-next with no reported problems.
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Staging driver updates for 7.4-rc1 Here is the big set of staging driver updates for 7.4-rc1. The huge majority of changes in here were to the rtl8723bs driver, which ended up being deleted entirely through the wifi driver tree, so while the work here was nice to have done to get experience by people, the overall goal was achieved in that we have a solid working and sane driver in the real part of the tree now. Other than that, included in here are: - some greybus driver removal of broken drivers that no one ever used - minor coding style cleanups for other staging drivers All of these have been in linux-next with no reported issues, other than the merge conflict of the driver being removed, but that's an obvious one to resolve :) Signed-off-by: Greg Kroah-Hartman <[email protected]>
USB / Thunderbolt changes for 7.4-rc1 Here is the big set of USB and Thunderbolt changes for 7.4-rc1. Included in here are: - thunderbolt driver updates and fixes - lots of dt schema conversions - usb gadget driver fixes (and a new maintainer!) - usb core fixups with some interactions with the driver core - usb serial updates and fixes for scan-found "issues" - xhci driver updates - typec driver updates - dwc3 driver updates - lots of usb gadget driver fixes for syzbot found "problems" - lots of other small USB driver fixes for randomly reported problems. All of these have been in linux-next with no reported issues. Signed-off-by: Greg Kroah-Hartman <[email protected]>
Char/Misc/IIO/others driver changes for 7.4-rc1
Here is the big set of char/misc/android/iio and other small driver
subsystem patches for 7.4-rc1. Loads of stuff in here, larger than
normal. Highlights include:
- removal of the C binder code, the rust version is stable and will be
used going forward in a few billion devices. Great job by those
developers.
- loads and loads of IIO driver updates and feature additions
- speakup driver fixes and updates
- mhi driver updates
- mei driver updates
- xillybus driver fixes
- comedi driver fixes
- lots of coresight driver updates
- Interconnect driver updates
- nvmem driver updates and fixes
- slimbus driver updates and fixes
- spmi driver updates and fixes
- lots of tiny misc and char driver fixes based on people scanning for
things.
All of these have been in linux-next for a while with no reported
issues, other than a merge conflict with one of the rust tree files,
which should be simple to resolve.
Signed-off-by: Greg Kroah-Hartman <[email protected]>
please pull the latest slab updates from: There are no known conflicts with other trees. Thanks, Harry - Performance improvement of the sheaf prefill API, by allowing the barn to hold a partial sheaf and refilling sheaves from the barn. This improves will-it-scale mmap1 throughput by 24% on the maple_node cache. (Hao Li) - Restore memcg accounting of ipc msg_msg allocations, lost with e.g. CONFIG_SLAB_BUCKETS=n where the allocations fall back to the general kmalloc caches. (Kees Cook) - Fix an old race between kmem_cache_destroy() and slab_late_init(), where a cache destroyed late in the boot process tries to release a kobject that was never initialized. (Imre Kaloz) - Remove slab_folio(), the last use of struct folio in slab code. (Matthew Wilcox) - Reject kmalloc() requests above KMALLOC_MAX_SIZE explicitly with a warning and NULL return instead of relying on the page allocator's order check. (Zi Yan) - Various minor fixes and cleanups. (Hao Li, Karl Mehltretter, Kees Cook, Longlong Xia) slab changes for 7.4
regmap: Changes for v7.4 This is a relatively busy release, mostly due to the general cleanup work which people have been doing throughout the kernel - for regmap that's mostly been some work from Peng Fan. I also added some more tests for the sparse caches to catch some gotchas people might run into trying to improve the maple cache. - Test very high register numbers to help people avoid a nasty gotcha trying to optimise the maple cache. - Make more use of scoped lock and allocation guards. - A couple of other smaller improvements and fixes.
please pull the latest printk changes from - John Ogness became PRINTK co-maintainer. - Unregister boot consoles when any proper console is registered at the end of the boot phase. Before they were removed only when the so-called preferred console, usually set via the last console= parameter, got registered. - Fix computation for increasing the printk ringbuffer on systems with many CPUs and possibly long backtraces from all CPUs. - Cleaned up irq_works handling for deferred printk operations. - Use acquire/release semantic for filled_random_ptr_key. - Allow to use ':' in console options. - More code clean up.
At 1252 non-merge changesets, the 7.4 cycle is rather large for the SoC
tree, and most of that is arm64 devicetree updates, with smaller changes
for riscv, 32-bit arm and drivers than the last few times. In both
drivers and devicetree updates, Qualcomm has by far the most contributions
including two new SoCs and 22 of the 81 new boards, followed by NXP
with 19 new machines.
Other new SoCs include the Apple M4/A18pro and Google Tensor 5.
There are a couple of trivial conflicts between the soc/dt and
soc/drivers branch from a driver that ended up getting merged along
with the DT changes, and from defconfig changes in a previous bugfix
branch.
I had originally planned to include a larger update[1] for 32-bit Arm
to remove most of the remaining legacy board files that were recently
deprecated. As the idea was to still have them in the LTS kernel and
there was some confusion whether that would be 7.3 or 7.4, we ended
up deferring that branch to 7.5, and the associated drivers likely
won't be dropped until 7.6.
The contributions came from 309 individual developers, the most common
ones being the usual names:
49 Marek Vasut
43 Krzysztof Kozlowski
40 Abel Vesa
36 Krishna Chaitanya Chundru
31 Thierry Reding
29 Francesco Dolcini
21 Lad Prabhakar
21 Frank Li
19 Svyatoslav Ryhel
19 Judith Mendez
18 Dario Binacchi
17 Chancel Liu
16 Janne Grunau
15 Yureka Lilian
15 Luca Weiss
14 Mukesh Ojha
13 Peng Fan
12 Taniya Das
12 Joachim Eastwood
12 Geert Uytterhoeven
12 Chuan Liu
11 Linus Walleij
11 Konrad Dybcio
The dirstat is:
0.4% Documentation/devicetree/bindings/arm/
0.7% Documentation/devicetree/bindings/clock/
0.1% Documentation/devicetree/bindings/input/
0.1% Documentation/devicetree/bindings/power/
0.1% Documentation/devicetree/bindings/soc/starfive/
0.1% Documentation/devicetree/bindings/soc/
0.2% Documentation/devicetree/bindings/
0.1% arch/arm/boot/dts/marvell/
2.7% arch/arm/boot/dts/nvidia/
2.1% arch/arm/boot/dts/nxp/imx/
0.2% arch/arm/boot/dts/nxp/vf/
0.1% arch/arm/boot/dts/qcom/
0.1% arch/arm/boot/dts/renesas/
0.8% arch/arm/boot/dts/st/
0.1% arch/arm/boot/dts/ti/omap/
0.1% arch/arm/boot/dts/
0.1% arch/arm/mach-omap2/
0.3% arch/arm/mach-s3c/
0.5% arch/arm/
0.1% arch/arm64/boot/dts/allwinner/
0.1% arch/arm64/boot/dts/amlogic/
3.1% arch/arm64/boot/dts/apple/
0.2% arch/arm64/boot/dts/broadcom/
0.2% arch/arm64/boot/dts/exynos/
12.1% arch/arm64/boot/dts/freescale/
0.3% arch/arm64/boot/dts/google/
0.1% arch/arm64/boot/dts/marvell/
0.1% arch/arm64/boot/dts/mediatek/
1.0% arch/arm64/boot/dts/nuvoton/
3.9% arch/arm64/boot/dts/nvidia/
41.0% arch/arm64/boot/dts/qcom/
5.8% arch/arm64/boot/dts/renesas/
5.7% arch/arm64/boot/dts/rockchip/
2.5% arch/arm64/boot/dts/st/
0.3% arch/arm64/boot/dts/tesla/
1.5% arch/arm64/boot/dts/ti/
0.1% arch/arm64/configs/
0.5% arch/riscv/boot/dts/spacemit/
0.2% arch/riscv/boot/dts/starfive/
0.2% arch/riscv/boot/dts/thead/
0.1% arch/
0.9% drivers/firmware/arm_scmi/transports/
0.8% drivers/firmware/arm_scmi/
0.2% drivers/firmware/qcom/
0.1% drivers/firmware/xilinx/
0.2% drivers/input/keyboard/
0.5% drivers/memory/tegra/
0.2% drivers/memory/
1.2% drivers/soc/amlogic/
0.1% drivers/soc/apple/
0.1% drivers/soc/fsl/qe/
0.2% drivers/soc/mediatek/
0.7% drivers/soc/qcom/
0.1% drivers/soc/renesas/
0.1% drivers/soc/samsung/
0.1% drivers/soc/starfive/socinfo/
0.3% drivers/soc/tegra/fuse/
0.1% drivers/soc/tegra/
0.2% drivers/
1.8% include/dt-bindings/clock/
0.3% include/dt-bindings/reset/
0.2% include/linux/
0.1% include/
1235 files changed, 95202 insertions(+), 11056 deletions(-)
Arnd
[1] https://lore.kernel.org/lkml/[email protected]/
This PR slightly violates the everything-must-be-ready-before-the-merge-window
rule, as I rebuilt the next branch on-top of the final v7.3 tag in order to not
include the fixes merged in v7.3-rc7. There is also a MAINTAINERS update patch
which I applied this week.
Everything else in this PR was ready before the merge window and the final
merge went through my usual testing as well. With that in mind, please
consider:
IOMMU updates for v7.4:
- Core:
- Detect scatterlist length overflows and finalize deferred domain
attachments before mapping MSI pages.
- Consolidate x86 MSI reserved-region handling and clean up internal DMA
and SVA helpers.
- AMD IOMMU:
- Add IOMMU PerfOpt support, enabled by amdgpu for supported integrated
GPUs in identity domains.
- Restrict forced identity mapping to GPUs that require it.
- Fix kdump device-table allocation and reuse, ATS configuration error
handling, and an interrupt-remapping allocation leak.
- Clean up device probing and initialization.
- Add Vasant Hegde as an AMD IOMMU maintainer.
- ARM SMMUv2:
- Device-tree binding updates for Qualcomm Maili and Nord SoCs.
- ARM SMMUv3:
- Work around hardware integration issue on Google Tensor G5 SoCs where all
DMA transactions appear as instruction fetches.
- Allow command queue size to be configured on the kernel command-line.
- Reduce queue sizes when running as a kdump kernel.
- Fix some pre-existing issues in the driver and kunit tests reported by
Sashiko.
- Fix handling of Arm hardware errata relating to the contiguous hint
when using SVA.
- Rework the TLB invalidation logic in preparation for enabling iommu-pt in
future.
- Minor cleanups in preparation for improving support for kdump.
- Apple DART:
- Support device-tree DMA aperture specifications.
- Broadcom:
- Add BCM2712 IOMMU support for Raspberry Pi 5 display and multimedia
devices, including the generic page-table format and shared TLB cache
management.
- Hyper-V:
- Add a para-virtualized guest IOMMU driver with guest-managed stage-1 page
tables and page-selective IOTLB invalidation.
- Intel VT-d:
- Enhanced IQE fault handling for batched multiple descriptors,
- Optimization of page-table level calculation in compute_vasz_lg2_ss(),
- Fixes for several pre-existing issues reported by Sashiko,
- General cleanup and refinement.
- RISC-V:
- Report cache-coherency capability for coherent devices, enabling
VFIO/iommufd use.
- Samsung Exynos:
- Support SysMMUs without BLOCK mode, fixing their enable sequence and TLB
invalidation.
- Improve v7 fault diagnostics with transaction information.
VFIO updates for v7.4-rc1 - Fix missing selftest <libgen.h> include for basename() to support non-glibc builds. (Hisam Mehboob) - Add vfio selftest documentation covering the libvfio helper library and guidance for developers to aid in adding and understanding the framework. (David Matlack) - Fix vfio cdev open path to prevent a second open from clobbering the vf_token or clearing the KVM reference. Add a selftest to avoid future recurrences. (Alex Williamson) - Extend vfio selftest mix_and_match timeouts, in particular to account for systems where generated faults can induce heavy SMM load, delaying internal timeouts. Also extend timeout for execution via runner to account for various tests exceeding default 45s timeout. (Alex Williamson) - Add tracking for non-reserved mappings into a vfio_dma object in order to optimize the tear-down paths where per-page tests can be entirely skipped. This resolves a soft lockup for large memory GPUs. (Samuel Crossley) - Add vfio selftest driver for mlx5, providing another target for exercising DMA and interrupts against a physical device. (Jason Gunthorpe) - Hardening against read-only region promotion, preserving vm_pgoff for unmap_mapping_range(), and reject non-shared MMIO mmaps as necessary through vfio-platform, vfio-fsl-mc, and vfio-cdx. These prevent future issues, though none are currently reachable. (Abdifatah Suruur) - Fix 8-byte ioeventfd support, removing a static error test that was erroneously left in place when generalizing 8-byte io accesses. (Li RongQing) - Fix missed RCU drain on module exit. (Jiale Yao) - Fix off-by-one boundary check in migration support within the mlx5 vfio-pci variant driver. (Seongjun Hong) - Remove drvdata usage convention across vfio-pci-core, allowing variant drivers to freely create their own conventions and enabling a future Rust-based variant driver. A DRM topic branch is also merged in support of this effort, modifying the vga arbiter API to more cleanly remove the drvdata dependency. (Simon Song) - Fix hisi_acc vfio-pci variant driver to avoid NULL pointer accesses when bound to unsupported devices and also disabling migration support when running on 64K host page size due to BAR mapping constraints. (Longfang Liu) - Add device IDs for Crescent Island and Nova Lake devices to the Xe vfio-pci variant driver. (Satyanarayana K V P) - Fix fallback mode in nvgrace-gpu variant driver to use symmetric open and close handlers to avoid reported use-after-free issue. Remove the resulting unnecessary test in the now single-purpose open function. (Andrea Parri)
(Sorry, I missed [GIT PULL] tag in previous mail. Resend it.) Bootconfig updates for v7.4: - bootconfig: Parser robustness and validation improvements . Skip printing early params to cmdline from bootconfig: Suppress early_param keys from /proc/cmdline and warn the user, since bootconfig does not invoke early_param handlers and silently ignoring them is misleading. . Reject unexpected data after null character: Detect and reject non-null data following an intermediate null character in the bootconfig buffer, preventing silently ignored configuration after an early termination. - bootconfig: Code cleanups . Merge _xbc_exit() into xbc_exit(): Since memblock_free() now handles late freeing and NULL addresses, the separate _xbc_exit() helper and its early argument are unnecessary. Inline it into xbc_exit(). . Remove redundant assignment in xbc_parse_array(): The node->child = 0 assignment after the loop duplicates what xbc_init_node() already did. . Skip internal tree sanity checks in kernel: Move the node index bounds loop from xbc_verify_tree() into a userspace-only xbc_sanity_check_tree() to reduce boot-time overhead, since out-of-bounds indices cannot be produced by malformed input. . Move BOOTCONFIG_FOOTER_SIZE to include/linux/bootconfig.h: Share the footer size constant between kernel and user-space tools, replacing the hardcoded (BOOTCONFIG_MAGIC_LEN + 8) expression in init/main.c. - tools/bootconfig: Tooling improvements . Remove unused PAGE_SIZE macro from the bootconfig tool. . Consolidate xbc_init() to error message wrapper: Use init_xbc_with_error() for all bootconfig initialization paths in the tool for simpler and more consistent error handling. bootconfig-v7.4
This is the main drm pull request for 7.4.
The merge into your tree from yesterday was pretty clean there was
only 3 minor conflicts that I think you can handle.
This has a bunch of the usual rust shared trees, which you will get
proper contents from device-core and rust trees.
There is one sound patch for an omapdrm interaction.
There is a vgaarb api change that affects it's consumers as well.
Highlights:
core: a lot of atomic refactoring in progress, panic got split into a
core/helpers model
amdgpu: enables HDMI 2.1 FRL and other good things finally, UAlink
over Ethernet support
xe: has a bunch of CRI support, ras error for bad vram, memory
offlining support.
msm: enables a bunch more GPUs.
Otherwise it's a the usual mountain of stuff all over the place, let
me know if there any problems.
Dave.
drm-next-2026-10-21:
drm next for 7.4-rc1
rust:
- I/O tree shared with driver-core
- DMA tree shared with driver-core
- allow aux registration data closures to return covariant
sub-fields
- Implement Send and Sync for MapleTree
- add pci resource flags and IORESOURCE_MEM_64
drm/rust:
- add dma_fence abstraction
- init DRM registrations and their data in place
- drop unused flags argument to registration
vgaarb:
- rework API to pass a private ptr instead of pci device
sound:
- adapt to omapdrm changes
gem:
- add callback for handle count going to 0
gpusvm:
- share one HMM fault and keep single mappings inline
pagemap:
- Prevent CPU stalls during unbounded pagemap teardown
dma-fence:
- fix docs
vga_switcheroo:
- disconnect from fbcon
- update fbcon from within fbdev emulation
atomic:
- move DRM from state reset callbacks to atomic_create_state
- remove drm_simple_encoder_init
panic:
- split into core and helpers
buddy:
- improve dirty tracking
clients:
- improve vmap handling
- fbdev: Move helpers from drm_kms_helper.ko to drm_client_lib.ko
display:
- export HDMI SCDC status data via debugfs
- rework SCDC for better HDMI 2.0 support
- dp/mst: improve DPCD compliance
edid:
- parse AMD VSDB
- parse ALLM/VRR capabilities
- support detecting panel size
log:
- add drm_warn_ratelimited
sched:
- cleanup interface
- add missing locking
- fix run-queue cleanup
- fix locking
sysfb:
- remove obsolete quirk for Lenovo D330
- fix panel orientation for non-native display modes
- drop drm_class_device_register
colorop:
- provide DRM_COLOR_OP_FIXED_MATRIX
bridge:
- analogix: Support eDP lane mapping
- ti-sn65dsi83: Support LVDS Channel B on SN65DSI84
- Select DRM_PANEL_BRIDGE for various drivers that require it
- add chrontel ch7218a support
panel:
- panel-edp: Support MNE007QS3-F, TM140VDXP15, and KD116N36-30NB-A001
- samsung-s6d16d0: Use mipi_dsi_*_multi() functions
- support Ilitek ILI7836A OLED plus DT bindings
- support Novatek NT36532 plus DT bindings
- convert several drivers to managed cleanup
- fix Kconfig selections
- edp: Add support for BOE NV140FHM-T0A
- samsung: Share test-key helpers
- edp: Support CSOT MNE007QB1-1
- ebbg-ft8719: Fix MODULE_LICENSE() string; Improve initialization
- edp: NV140WU2-M70
- ilitek-ili9882t: Support Ilitek IL79600A plus DT bindings
- simple: Support Truly TFT320240-229-E plus DT bindings; Support BOE
DV215FHM-R01 plus DT bindings
- Refactor struct drm_panel to contain struct drm_bridge plus fallout in
various panel drivers
- Add support for BOE Novatek NT51021, Retroid Pocket 6,
Raydium RM69220 DDIC panels, Sharp LQ138P1JX61 eDP,
BOE NV140FHD-N43, AUO B140HAN04.0, AUO 0x0db3,
panels.
amdgpu:
- use AMD VSDB for freesync
- implement YUV-to-RGB with fixed-matrix colorop
- enable FRL for HDMI
- HDMI 2.1 freesync support
- HDMI 2.1 ALLM support
- HDMI 2.1 VRR support
- UALoE (UALink over Ethernet) support
- add syncobj_points to userq signal ioctl
- drop unused kunit tests
- NBIO/GC/MMHUB/SMU updates/fixes
- GPU spatial partitioning updates
- display kunit fixes
- userq fixes
- RGB quantization fixes
- DC RMCM refactor
- DP MST fixes
- USB4 fixes
- add new trace events
- Rework display instance handling
- stack frame size fixes for various compilers/configs
- VCN 4/5 reset fixes
- freesync updates
- cursor refactor
- Fix direct scanout alpha on some DRM_FORMATs
- Expand Mac reserved memory workaround
- Make runtime pm more fine grained
amdkfd:
- updates and fixes
- GC 10 CU occupancy support
radeon:
- eDP fix for DCE3.2 iMacs
xe:
- add drm_ras netlink error event support
- add memory page offlining support
- introduce error threshold to drm_ras
- fix stale GTT mappings on unmap
- reject page faults for non-page fault mode scratch VM
- enable CRI package and VRAM temperatures
- introduce cold reset recovery
- handle CRI+ power interval encoding
- VF migration for multi-queue
- handle exec queue teardown after hot unplug
- alerts and controller enabling modifications
- use IBCv3 on PTL
- VRAM health check
- report GT TDR and VM rebind faults using SIGID
- add multi_queue_active_lrca debugfs
- shrinker: Runtime PM reference for non-system memory
- guc: Add simple KLV decoder helpers
- debugfs: Expose per-engine idle status
- Keep walking on SVM eviction failure
- Nuke PTs only after unlinking contested VMAs
- limit sg segment size to PAGE_SIZE on Xen PV
- keep VF LMEM bar size low if no VFs
- CPU binds and ULLS on migration queue
- New PTL PCI ID
- Enable PXP for NVL-S
- Do not dma_fence_put zero fences in err_out path
- Refresh TTM LRU on SVM prefetch
- export device UID in sysfs
i915:
- rename GEN6_PCODE_DATA to match spec
- fix incorrect RCU teardown order
- fix potential UAF in command parsing
- avoid WARN splat during RPS boosting race
- use simpler min functions
- Fixes to make i915 work well with PREEMPT_RT
i915/display:
- Enable CMRR (Content Match Refresh Rate) in fixed-RR VRR path
- Switch DG2 MPLL to DPLL framework
- DP-HDMI PCON DSC fixes
- limit invalid joiner combinations
- CDCLK related fixes and refactor around PCODE integration
- Gate UHBR SST SDP splitting on sink caps
- add HDMI TMDS audio bandwidth check
- vswing/preemph override
- enable AS SDP Skip frames
- Handle negative configuration index on DP link caps for robustness
- Preparation for enabling SDR plane color pipeline
- An eDP quirk for HP Pavilion Plus
- Introduce PME (Power Management Event) support on display hotplug
- Handle VSC SDP revision 7 in unpack
msm:
- CI:
- Dropped sc7180 trogdor lazor from the CI
- Core:
- Fixed msm_ioremap for resources without a name
- Changed msm.separate_gpu_kms to default to auto selection
- GPU:
- Enable CLX (Current Limit eXtension) for gen8 to avoid
exceeding limits on CX/GX rails
- New GPUs: a830 (Pakala), a845 (Maili), a850 (Hawi),
x2-85 (Mahua)
- Fix VBIF halt mask on a306, which was preventing runpm
suspend
- Enable THP support for GEM buffers
- Add modparam to disable waiting on fences in shrinker
- Drop use of drm_prime_sg_to_page_array()
- a5xx: don't read the GPMU registers on GPUs without a GPMU
- a2xx/a3xx/a5xx: hangcheck progress detection
- a6xx: gmuwrapper runpm fix
- Calculate reported GMEM size based on active slices
- Split a6xx/a7xx/a8xx catalog
- DP:
- Picked up some preparation patches for the MST support
- Fixed reported status of the link training
- DPU:
- Fixed CRTC bandwidth computation
- Fixed DSC programming
- Fixed encoder disablement path
- DSI:
- Fixed VM leak in error path
- Indention fix
- MDP5:
- Added MSM8952 configuration
- Dropped incorrect cursor pipe on MSM8976/56
- HDMI:
- Small fixes
nouveau:
- improve runtime PM on R570 GSP firmware
- various fixes throughout the driver
- dispnv50: support 2.147 GHz pixel clock in GB20x
nova:
- add initial uapi concept
- add initial PRAMIN access support
- add GpuMm centralized memory manager
- add GPU VM and BAR1 support
- add GPU interrupts and GSP events support
- GSP messaging fixes
tyr:
- use bitfield!
- zero unsupported and newly added GPU info fields
- limit doorbell array to 17 entries
exynos:
- FIMD fixes
- Fix clock leak on resume error path.
- Fix Sparse warnings by adding missing __iomem annotation.
- VIDI cleanup
- Replace kmalloc() and copy_from_user() with memdup_user().
amdxdna:
- fix BO handling
- Support AIE2 rev 9
- Fix UAF access in scheduler fences
- Update workqueue interface
- expose busy time via fdinfo
ast:
- support 256-byte EDID
hyperv_drm:
- remove support for pre win10 hosts
komeda:
- fix GLB_CORE_ID usage
omap:
- report HDMI hotplug events to ASoC HDMI codec
panthor:
- provide gpu_cache_flush tracepoint
- improve dma_fence signalling latency
- improve locking
- export scheduling information via debugfs
- Validate user-space input against firmware limits
qaic:
- reject BOs that exceed maximum page count
- add missing include statements
verisilicon:
- fix hardware cursor offsets
vkms:
- implement YUV-to-RGB with fixed-matrix colorop
gma500:
- avoid unsupported ARGB formats in primary plane
hibmc:
- handle vblank interrupts correctly
ivpu:
- add DRM_IVPU_CAP_CMDQ_SET_PRIORITY
- support command-queue priority ioctl
- Simplify NULL-pointer handling in cleanup code
arcpgu:
- replace simple-display pipeline with regular atomic helpers
aspeed:
- replace simple-display pipeline with regular atomic helpers
gm12u320:
- replace simple-display pipeline with regular atomic helpers
imagination:
- various improvement to firmware interaction
- add job to pvr_job_submit_fw trace event
mali-dp:
- fix runtime PM leak
mcde:
- replace simple-display pipeline with regular atomic helpers
p111:
- replace simple-display pipeline with regular atomic helpers
- drop unsupported alpha formats from primary plane
rcar-du:
- support Renesas R-Car V4H DSC
- dsi: Support larger transfers with AXI memory
- Support RZ/G3L SoC
repaper:
- replace simple-display pipeline with regular atomic helpers
rockchip:
- dsi: improve PHY timings
ssd130x:
- support Solomon SSD1351 OLED plus DT bindings
- ssd133x: upgrade color format to RGB565
- ssd132x: Set correct hardware window when clearing screen
tve200:
- replace simple-display pipeline with regular atomic helpers
xen:
- replace simple-display pipeline with regular atomic helpers
v3d:
- improve job handling under perfmon
vc4:
- reliably reset V3D
- drop brcm,vc4-v3d compatible
virtio:
- fix damage handling
- Support ARGB8888 for virtio primary planes.
host1x:
- Support partitioning
imx:
- Replace simple-display with regular atomic helpers
mxsfb:
- Support bus formats plus DT bindings
tegra:
- improve syncobj handling on submit
panfrost:
- add Mali-G68 support
- improve GPU reset handling
rockchip:
- add HDMI 2.0 support to dw-hdmi-qp
- improve HPD handling
drm next for 7.4-rc1
rust:
- I/O tree shared with driver-core
- DMA tree shared with driver-core
- allow aux registration data closures to return covariant
sub-fields
- Implement Send and Sync for MapleTree
- add pci resource flags and IORESOURCE_MEM_64
drm/rust:
- add dma_fence abstraction
- init DRM registrations and their data in place
- drop unused flags argument to registration
vgaarb:
- rework API to pass a private ptr instead of pci device
sound:
- adapt to omapdrm changes
gem:
- add callback for handle count going to 0
gpusvm:
- share one HMM fault and keep single mappings inline
pagemap:
- Prevent CPU stalls during unbounded pagemap teardown
dma-fence:
- fix docs
vga_switcheroo:
- disconnect from fbcon
- update fbcon from within fbdev emulation
atomic:
- move DRM from state reset callbacks to atomic_create_state
- remove drm_simple_encoder_init
panic:
- split into core and helpers
buddy:
- improve dirty tracking
clients:
- improve vmap handling
- fbdev: Move helpers from drm_kms_helper.ko to drm_client_lib.ko
display:
- export HDMI SCDC status data via debugfs
- rework SCDC for better HDMI 2.0 support
- dp/mst: improve DPCD compliance
edid:
- parse AMD VSDB
- parse ALLM/VRR capabilities
- support detecting panel size
log:
- add drm_warn_ratelimited
sched:
- cleanup interface
- add missing locking
- fix run-queue cleanup
- fix locking
sysfb:
- remove obsolete quirk for Lenovo D330
- fix panel orientation for non-native display modes
- drop drm_class_device_register
colorop:
- provide DRM_COLOR_OP_FIXED_MATRIX
bridge:
- analogix: Support eDP lane mapping
- ti-sn65dsi83: Support LVDS Channel B on SN65DSI84
- Select DRM_PANEL_BRIDGE for various drivers that require it
- add chrontel ch7218a support
panel:
- panel-edp: Support MNE007QS3-F, TM140VDXP15, and KD116N36-30NB-A001
- samsung-s6d16d0: Use mipi_dsi_*_multi() functions
- support Ilitek ILI7836A OLED plus DT bindings
- support Novatek NT36532 plus DT bindings
- convert several drivers to managed cleanup
- fix Kconfig selections
- edp: Add support for BOE NV140FHM-T0A
- samsung: Share test-key helpers
- edp: Support CSOT MNE007QB1-1
- ebbg-ft8719: Fix MODULE_LICENSE() string; Improve initialization
- edp: NV140WU2-M70
- ilitek-ili9882t: Support Ilitek IL79600A plus DT bindings
- simple: Support Truly TFT320240-229-E plus DT bindings; Support BOE
DV215FHM-R01 plus DT bindings
- Refactor struct drm_panel to contain struct drm_bridge plus fallout in
various panel drivers
- Add support for BOE Novatek NT51021, Retroid Pocket 6,
Raydium RM69220 DDIC panels, Sharp LQ138P1JX61 eDP,
BOE NV140FHD-N43, AUO B140HAN04.0, AUO 0x0db3,
panels.
amdgpu:
- use AMD VSDB for freesync
- implement YUV-to-RGB with fixed-matrix colorop
- enable FRL for HDMI
- HDMI 2.1 freesync support
- HDMI 2.1 ALLM support
- HDMI 2.1 VRR support
- UALoE (UALink over Ethernet) support
- add syncobj_points to userq signal ioctl
- drop unused kunit tests
- NBIO/GC/MMHUB/SMU updates/fixes
- GPU spatial partitioning updates
- display kunit fixes
- userq fixes
- RGB quantization fixes
- DC RMCM refactor
- DP MST fixes
- USB4 fixes
- add new trace events
- Rework display instance handling
- stack frame size fixes for various compilers/configs
- VCN 4/5 reset fixes
- freesync updates
- cursor refactor
- Fix direct scanout alpha on some DRM_FORMATs
- Expand Mac reserved memory workaround
- Make runtime pm more fine grained
amdkfd:
- updates and fixes
- GC 10 CU occupancy support
radeon:
- eDP fix for DCE3.2 iMacs
xe:
- add drm_ras netlink error event support
- add memory page offlining support
- introduce error threshold to drm_ras
- fix stale GTT mappings on unmap
- reject page faults for non-page fault mode scratch VM
- enable CRI package and VRAM temperatures
- introduce cold reset recovery
- handle CRI+ power interval encoding
- VF migration for multi-queue
- handle exec queue teardown after hot unplug
- alerts and controller enabling modifications
- use IBCv3 on PTL
- VRAM health check
- report GT TDR and VM rebind faults using SIGID
- add multi_queue_active_lrca debugfs
- shrinker: Runtime PM reference for non-system memory
- guc: Add simple KLV decoder helpers
- debugfs: Expose per-engine idle status
- Keep walking on SVM eviction failure
- Nuke PTs only after unlinking contested VMAs
- limit sg segment size to PAGE_SIZE on Xen PV
- keep VF LMEM bar size low if no VFs
- CPU binds and ULLS on migration queue
- New PTL PCI ID
- Enable PXP for NVL-S
- Do not dma_fence_put zero fences in err_out path
- Refresh TTM LRU on SVM prefetch
- export device UID in sysfs
i915:
- rename GEN6_PCODE_DATA to match spec
- fix incorrect RCU teardown order
- fix potential UAF in command parsing
- avoid WARN splat during RPS boosting race
- use simpler min functions
- Fixes to make i915 work well with PREEMPT_RT
i915/display:
- Enable CMRR (Content Match Refresh Rate) in fixed-RR VRR path
- Switch DG2 MPLL to DPLL framework
- DP-HDMI PCON DSC fixes
- limit invalid joiner combinations
- CDCLK related fixes and refactor around PCODE integration
- Gate UHBR SST SDP splitting on sink caps
- add HDMI TMDS audio bandwidth check
- vswing/preemph override
- enable AS SDP Skip frames
- Handle negative configuration index on DP link caps for robustness
- Preparation for enabling SDR plane color pipeline
- An eDP quirk for HP Pavilion Plus
- Introduce PME (Power Management Event) support on display hotplug
- Handle VSC SDP revision 7 in unpack
msm:
- CI:
- Dropped sc7180 trogdor lazor from the CI
- Core:
- Fixed msm_ioremap for resources without a name
- Changed msm.separate_gpu_kms to default to auto selection
- GPU:
- Enable CLX (Current Limit eXtension) for gen8 to avoid
exceeding limits on CX/GX rails
- New GPUs: a830 (Pakala), a845 (Maili), a850 (Hawi),
x2-85 (Mahua)
- Fix VBIF halt mask on a306, which was preventing runpm
suspend
- Enable THP support for GEM buffers
- Add modparam to disable waiting on fences in shrinker
- Drop use of drm_prime_sg_to_page_array()
- a5xx: don't read the GPMU registers on GPUs without a GPMU
- a2xx/a3xx/a5xx: hangcheck progress detection
- a6xx: gmuwrapper runpm fix
- Calculate reported GMEM size based on active slices
- Split a6xx/a7xx/a8xx catalog
- DP:
- Picked up some preparation patches for the MST support
- Fixed reported status of the link training
- DPU:
- Fixed CRTC bandwidth computation
- Fixed DSC programming
- Fixed encoder disablement path
- DSI:
- Fixed VM leak in error path
- Indention fix
- MDP5:
- Added MSM8952 configuration
- Dropped incorrect cursor pipe on MSM8976/56
- HDMI:
- Small fixes
nouveau:
- improve runtime PM on R570 GSP firmware
- various fixes throughout the driver
- dispnv50: support 2.147 GHz pixel clock in GB20x
nova:
- add initial uapi concept
- add initial PRAMIN access support
- add GpuMm centralized memory manager
- add GPU VM and BAR1 support
- add GPU interrupts and GSP events support
- GSP messaging fixes
tyr:
- use bitfield!
- zero unsupported and newly added GPU info fields
- limit doorbell array to 17 entries
exynos:
- FIMD fixes
- Fix clock leak on resume error path.
- Fix Sparse warnings by adding missing __iomem annotation.
- VIDI cleanup
- Replace kmalloc() and copy_from_user() with memdup_user().
amdxdna:
- fix BO handling
- Support AIE2 rev 9
- Fix UAF access in scheduler fences
- Update workqueue interface
- expose busy time via fdinfo
ast:
- support 256-byte EDID
hyperv_drm:
- remove support for pre win10 hosts
komeda:
- fix GLB_CORE_ID usage
omap:
- report HDMI hotplug events to ASoC HDMI codec
panthor:
- provide gpu_cache_flush tracepoint
- improve dma_fence signalling latency
- improve locking
- export scheduling information via debugfs
- Validate user-space input against firmware limits
qaic:
- reject BOs that exceed maximum page count
- add missing include statements
verisilicon:
- fix hardware cursor offsets
vkms:
- implement YUV-to-RGB with fixed-matrix colorop
gma500:
- avoid unsupported ARGB formats in primary plane
hibmc:
- handle vblank interrupts correctly
ivpu:
- add DRM_IVPU_CAP_CMDQ_SET_PRIORITY
- support command-queue priority ioctl
- Simplify NULL-pointer handling in cleanup code
arcpgu:
- replace simple-display pipeline with regular atomic helpers
aspeed:
- replace simple-display pipeline with regular atomic helpers
gm12u320:
- replace simple-display pipeline with regular atomic helpers
imagination:
- various improvement to firmware interaction
- add job to pvr_job_submit_fw trace event
mali-dp:
- fix runtime PM leak
mcde:
- replace simple-display pipeline with regular atomic helpers
p111:
- replace simple-display pipeline with regular atomic helpers
- drop unsupported alpha formats from primary plane
rcar-du:
- support Renesas R-Car V4H DSC
- dsi: Support larger transfers with AXI memory
- Support RZ/G3L SoC
repaper:
- replace simple-display pipeline with regular atomic helpers
rockchip:
- dsi: improve PHY timings
ssd130x:
- support Solomon SSD1351 OLED plus DT bindings
- ssd133x: upgrade color format to RGB565
- ssd132x: Set correct hardware window when clearing screen
tve200:
- replace simple-display pipeline with regular atomic helpers
xen:
- replace simple-display pipeline with regular atomic helpers
v3d:
- improve job handling under perfmon
vc4:
- reliably reset V3D
- drop brcm,vc4-v3d compatible
virtio:
- fix damage handling
- Support ARGB8888 for virtio primary planes.
host1x:
- Support partitioning
imx:
- Replace simple-display with regular atomic helpers
mxsfb:
- Support bus formats plus DT bindings
tegra:
- improve syncobj handling on submit
panfrost:
- add Mali-G68 support
- improve GPU reset handling
rockchip:
- add HDMI 2.0 support to dw-hdmi-qp
- improve HPD handling
Probes updates for v7.4:
- kprobes: Asynchronous optprobe optimizer and cleanups
. Make optprobe optimizer multi-generational and asynchronous: Rework
the optimizer as a state machine to avoid calling time-consuming
synchronize_rcu_tasks() while holding kprobe_mutex, text_mutex, and
cpus_read_lock(). Uses call_rcu_tasks() and a fixed ring of generation
slots instead, so locks are only held during the brief instruction-
patching window.
. Use DEFINE_DEBUGFS_ATTRIBUTE for the kprobes enabled knob: Replace a
hand-rolled debugfs read/write pair (dating from 2007) with the proper
DEFINE_DEBUGFS_ATTRIBUTE macro, removing dead code and the stale XXX
comment.
- tracing/probes: Code quality and documentation cleanups
. Add const qualifier to new_argv allocation type in trace_probe.c,
preparing for the type-aware kmalloc_obj allocator conversion.
. Clarify btf_find_struct_member() container parameter: Rename the
misleading @member_type parameter to @container_type and add proper
kernel-doc documentation for all parameters and return values.
- selftests/ftrace: Boot tracing test framework and testcases
. Add a generic boot tracing test framework under
tools/testing/selftests/ftrace/boottime/. The test runner builds a
minimal initramfs with busybox, boots QEMU, and runs tracefs checker
scripts, supporting bootconfig, kernel command-line options, and
multi-boot crash/reboot scenarios.
. Add boot-time tracing testcases: Verify dynamic kprobe, synthetic
events, eprobe, fprobe, tprobe, and trace instance creation via
bootconfig.
. Add kernel cmdline tracing testcases: Verify ftrace, trace_event,
trace_buf_size, trace_options, trace_clock, and trace_instance kernel
parameters.
. Add persistent ring buffer testcases: Verify memory reservation via
reserve_mem= and trace data retention across guest crash/reboot, as
well as backup instance creation and boot log preservation.
. Change non-unique test symbol from name_show to init_once in
kprobe_non_uniq_symbol.tc for more reliable cross-architecture
testing.
probes-v7.4
Enumeration:
- Set supported_speeds in set_pcie_port_type() so sparc64 and powerpc,
which call it via of_create_pci_dev() instead of the usual
pci_setup_device(), correctly set the supported PCIe link speeds (Stian
Halseth)
- When pcie_set_mps() changes MPS, update the value in the saved state so
a subsequent restore doesn't restore an invalid value (Niklas Cassel)
- Skip Target Speed quirk on clamped ports with no link (Maciej W.
Rozycki)
Driver binding:
- Assume control of portdrv-related features only when portdrv is
enabled, since we can't use them without portdrv (Kuppuswamy
Sathyanarayanan)
- Centralize feature ownership checking so code only needs to check
'host->native_X' and doesn't need to also check 'pcie_ports_native'
(Kuppuswamy Sathyanarayanan)
Error handling:
- Fix leaks when ACPI APEI/GHES error events overflow the kfifo or
mention a device that no longer exists (Priyank Rathod)
- Fix aer_process_err_devices() leak when a device is recorded as an
error source purely by being mentioned in the Root Port Error Source
and the device is inaccessible or logged only masked errors (Priyank
Rathod)
ASPM:
- Disable ASPM when drivers request that, even if the OS doesn't own
ASPM; otherwise drivers do it on their own, which is worse (Ilpo
Järvinen)
Power management:
- Align hibernate poweroff flow with suspend flow for bridges so they can
be powered down at hibernate as they are for suspend (Mario
Limonciello)
- Restore BARs after powering up during enumeration to fix a regression
on devices that don't preserve state in D3hot (Keng-Yu Lin)
- Avoid D3 on PLX PEX 8532/8533/8548 downstream ports, where putting them
in D3hot takes down the whole switch (Imre Kaloz)
Power control:
- Add GPIO driver for Toshiba TC9563 embedded GPIO controller (Alex
Elder)
- Add DT documentation and pwrctrl driver support for TC9563 embedded
GPIO controller (Lorenzo Bianconi)
- Switch the tc9563 per-port reset to use the GPIO descriptor API instead
of direct regmap accesses (Lorenzo Bianconi)
- Only destroy devices created by pwrctrl core, so that when removing a
PCIe controller driver that uses pwrctrl, we don't remove devices
populated by another mechanism (Shawn Lin)
- Power off child devices on power-on failure (Lorenzo Bianconi)
PCIe native device hotplug:
- Make the 'pciehp_poll_mode' parameter read-only to prevent changes via
sysfs, which can cause errors when unbinding (Runyu Xiao)
Virtualization:
- Read SR-IOV VF Revision ID and Subsystem ID from VF instead of assuming
they're the same as VF 0; they may differ (Logan Odell)
- Add ACS quirk for Pericom PI7C9X2G304 switches (Hans de Goede)
Peer-to-peer DMA:
- Add Zhaoxin KX-6000, KH-40000, KX-6000G, KX-7000, and KH-50000 host
bridges to allowlist (LeoLiu-oc)
- Add Alibaba T-HEAD Yitian 710 host bridge to allowlist (Feng Tang)
- Add Intel Haswell client host bridge to allowlist (Scott Lee)
- Intel Xeon E3/E5/E7 0x6f00 host bridge to allowlist (kai zhang)
- Fix handling of errors in pci_p2pdma_add_resource() to avoid (a)
unmapping a BAR if registering another fails and (b) use after free of
p2p_pgmap (Leon Romanovsky)
- Wait for RCU readers before freeing state to avoid use-after-free of
pdev->p2pdma (Leon Romanovsky)
- Restrict pci_p2pmem_find_many() to providers backed by a pool (Leon
Romanovsky)
- Safely terminate ACS redirect lists to avoid out-of-bounds access to
the buffer (Leon Romanovsky)
- Silence 'Host bridge not in P2PDMA whitelist' warnings unless caller,
e.g., pci_p2pmem_find_many(), requests 'verbose' (Leon Romanovsky)
Sysfs:
- Return -ENODEV or -EIO sysfs 'label' or 'acpi_index' attributes when
Device Name _DSM fails, not -1, which is interpreted as -EPERM
(Krzysztof Wilczyński)
- Return valid sysfs 'acpi_index' attribute even if the Device Name _DSM
returned an invalid 'label' (Krzysztof Wilczyński)
- Expose sysfs 'acpi_index' and 'label' based on whether the Device Name
_DSM returns valid data, not merely whether the _DSM is implemented
(Krzysztof Wilczyński)
- Avoid out-of-bounds reads of the label returned by the Device Name
_DSM, which is in UTF-16 characters, not bytes (Krzysztof Wilczyński)
- Reject unaligned resource I/O port accesses, which can oops on arm64
(Deepanshu Kartikey)
Endpoint framework:
- Pass the correct physical and virtual endpoint function numbers when
setting translation of inbound memory windows (Koichiro Den)
- Make embedded doorbell IRQ non-shared, since currently only the first
EPF can allocate doorbells (Koichiro Den)
- MSI doorbells currently target the first EPF attached to an EPC; let
other EPFs try the embedded doorbell instead of failing when they can't
use the MSI doorbell (Koichiro Den)
- Serialize scan of vNTB virtual PCI bus with other PCI topology changes
(Koichiro Den)
- Manage vNTB lifetimes to avoid leaking virtual devices and buses and
allow removal (Koichiro Den)
- Track vNTB link state from both sides so both see the same effective
link state (Koichiro Den)
- Configure vNTB MSI-X when supported to avoid IOMMU faults and failure
to deliver doorbell interrupts on RC (Koichiro Den)
APM X-Gene PCIe controller driver:
- Use devm for clocks so they're automatically disabled, unprepared, and
released if errors happen during probe (Yuho Choi)
ASPEED PCIe controller driver:
- Fix clk and PHY leaks in aspeed_pcie_port_init() error paths (Liu
Zhenlong)
Broadcom iProc PCIe controller driver:
- Expose devm_pci_alloc_host_bridge_release() so drivers can share a devm
release function even if they don't need the device tree parsing done
by devm_pci_alloc_host_bridge() (Bjorn Helgaas)
- Request only the memory window from BCMA Enumeration ROM and warn if it
doesn't match the one in DT, which fixes an iproc-bcma probe failure
(Semih Baskan)
Broadcom STB PCIe controller driver:
- Replace bool properties for each SoC configuration with a u32 bitvector
and a BFLAG() helper (Jim Quinlan)
- Use a similar BQUIRK() helper to test various SoC quirks (Jim Quinlan)
Cadence PCIe controller driver:
- Remove device links to PHY, which are redundant because the PHY core
itself adds them (Vladimir Oltean)
- Return error (not success) from cdns_plat_pcie_probe() if
pm_runtime_get_sync() or cdns_pcie_ep_setup() failed (Vladimir Oltean)
- Correct the driver data pointer usage; previously .probe() stored
'struct cdns_plat_pcie *', but .shutdown() used the pointer as 'struct
cdns_pcie *', resulting in accessing garbage (Linmao Li)
ESWIN PCIe controller driver:
- Publish the platform driver MODULE_DEVICE_TABLE so the driver can be
autoloaded when built as a module (Pengpeng Hou)
Freescale i.MX6 PCIe controller driver:
- Fix resource and pwrctrl device leaks .probe() (Zhijian Han)
- Improve i.MX95 Gen3 link stability by changing MPLLB_BANDWIDTH from
default 120 to 140 (Richard Zhu)
- Use dev_err_probe() in host init error path to silence -EPROBE_DEFER
messages (Alexander Stein)
- Avoid dereferencing NULL clock names when 'clocks' includes more
phandles than 'clock-names' has names (Rudi Heitbaum)
- Add suspend_poweroff flag so platforms like i.MX that power off RC
controllers during suspend can enter L2 so endpoints can get
PME_Turn_Off notifications before power loss (Richard Zhu)
Freescale Layerscape PCIe controller driver:
- Enable PROBE_PREFER_ASYNCHRONOUS to reduce probe time of the four
controllers on LX2160A (Vincent Jardin)
Intel VMD host bridge driver:
- Flush DMA writes before handling MSI on Meteor Lake: MSI may arrive
before write has completed, resulting in an nvme 30 second stall before
a QID timeout and possibly other similar problems (Rickey Bartlett)
- Flush DMA writes before handling MSI on Arrow Lake (Vladimir
Nedoshivin)
Marvell Aardvark PCIe controller driver:
- Disable PHY on probe failures (Myeonghun Pak)
Marvell MVEBU PCIe controller driver:
- Refcount child OF nodes during .probe() to make a concurrent OF overlay
removal safe (Krzysztof Kozlowski)
MediaTek PCIe controller driver:
- Find INTx DT property by 'interrupt-controller' name instead of
assuming it's the first child node (Zhengping Zhang)
MediaTek PCIe Gen3 controller driver:
- Fix a 64-bit type truncation in mtk_pcie_set_trans_table() to avoid
issues with windows above or larger than 4GB (Sreeraj S Kurup)
NVIDIA Tegra264 PCIe controller driver:
- Fix the Link Capabilities offset so we read the correct register (Bjorn
Helgaas)
Qualcomm PCIe controller driver:
- Only collect reset GPIOs from PCI bridge DT nodes to avoid stealing
resets used by downstream devices like USB controllers (Christopher
Obbard)
- Block accesses to downstream devices on link down to reduce a storm of
Completion Timeout AER interrupts (Qiang Yu)
- Skip system suspend/resume for firmware-managed PCIe, where firmware
manages clocks, regulators, resets, etc (Mrinmay Sarkar)
- Honor IOMMU provider's #iommu-cells in qcom_pcie_config_sid_1_9_0()
(Manivannan Sadhasivam)
- Deinitialize endpoint on remove (Guangshuo Li)
- Treat Root Port error recovery as successful even if link doesn't come
up after reset because the device was hot-unplugged (Konrad Dybcio)
- Skip unnecessary iMSI-RX initialization if DT 'msi-map' is present,
indicating an external MSI controller (Ayiluri Naga Rashmi)
Renesas R-Car PCIe controller driver:
- Limit Max_Read_Request_Size to 256 to avoid hardware erratum (Marek
Vasut)
- Support PERST# via reset subsystem as well as the existing GPIO support
to prepare for R-Car Gen5 SoCs (Marek Vasut)
- Add DT and driver support for the R-Car Gen 5 X5H (R8A78000) PCIe Gen 4
core (Marek Vasut)
- Add Application/Local register reset DT description and driver support
for both host and endpoint mode (Marek Vasut)
- Add PM ops so controller works after suspend/resume (Marek Vasut)
Renesas RZ/G3S PCIe controller driver:
- Disable refclk on probe failure (Lad Prabhakar)
- Propagate platform_get_irq_byname() errors so probe deferral works
correctly (Lad Prabhakar)
- Tear down INTx handlers if subsequent initialization fails (Lad
Prabhakar)
- Add RZ/G3L (R9A08G046) DT and driver support (Biju Das)
Rockchip PCIe controller driver:
- Limit host and endpoint controllers to 2.5 GT/s since 5.0 GT/s is
unsafe per Rockchip (Geraldo Nascimento)
Synopsys DesignWare PCIe controller driver:
- Set DMA_BYPASS bit in outbound IATU CTRL2 register to avoid data
corruption if the iATU translates DMA engine transactions (Sumit Kumar)
- Use FIELD_PREP() to remove need for *_SHIFT definitions (Hans Zhang)
TI DRA7xx PCIe controller driver:
- Remove device links to PHY, which are redundant because the PHY core
itself adds them (Vladimir Oltean)
- Fix optional clock leak when .probe() fails by using
devm_clk_get_optional_enabled() (Felix Gu)
TI Keystone PCIe controller driver:
- Remove device links to PHY, which are redundant because the PHY core
itself adds them (Vladimir Oltean)
UltraRISC PCIe controller driver:
- Allow DWC drivers to skip outbound iATU setup if they don't need
translation between CPU and PCI addresses (Xincheng Zhang)
- Skip MEM outbound iATU setup on DP1000 (Xincheng Zhang)
Xilinx Versal CPM PCIe controller driver:
- Add DT and driver support for optional PERST# for use in warm reset
scenarios (Sai Krishna Musham)
Xilinx XDMA PCIe controller driver:
- Fix device node reference leak in xilinx_pl_dma_pcie_init_irq_domain()
(Wentao Liang)
please pull from nus-2026102101 to receive 7.4 merge window queue for HID subsystem. Namely: =3D=3D=3D=3D=3D [CORE] - OOB fix in s32ton() (Alan Stern) - switch to named initializers for acpi_device_id (Pawel Zalewski) - UAF fix in hiddev (Yousef Alhouseen) [AMD_SFH] - support for newer AMD SoCs (Basavaraj Natikar) - sysfs attributes of operating-mode telemetry (Basavaraj Natikar) [APPLE] - power management fix for Apple Touch Bar (Andre Eikmeyer) - fix for trackpad hanling on T2 Macs (Aditya Garg) [ASUS] - power management fix for ROG Ally (Deni Benato) - asus_work() hardening (Denis Benato) [INTEL-THC] - conversion of intel-thc-hid to hid_safe_input_report() (Even Xu) [NINTENDO] - support for Switch 2 controller (Vicki Pfau) - support for PDP Afterglow controller (Aiman Najjar) [ROCCAT] - fixes for proper handling of short reports (Jiale Yao) [WACOM] - UAF fixes (Lee Jones) - other assorted fixes, device ID additions and code cleanups =3D=3D=3D=3D=3D Thanks!
Hi Linus, A single fix to kunit_run_all_tests() to return void since callers don't check the return value and the integer return type is a remnant from when the function was executed as initcall which is no longer the case. - kunit: Return void from kunit_run_all_tests() diff is attached. thanks, -- Shuah linux_kselftest-kunit-7.4-rc1 A single fix to kunit_run_all_tests() to return void since callers don't check the return value and the integer return type is a remnant from when the function was executed as initcall which is no longer the case. - kunit: Return void from kunit_run_all_tests()
Hi Linus,
- Improves selftest build, run-time, and install framework
Installs even when some modules fail to build, prints summary of test
results at the end of the default test run, keeps the build status from
wrapping to success so build errors are reported, and optionally records
per-suite build and install results:
selftests: lib.mk: Don't fail install if no modules were built
selftests/lib.mk: run_tests: print summary at the end
selftests: keep the build status from wrapping to success
selftests: optionally record per-suite build and install results
- Adds LLVM support to kselftest_deps.sh
selftests: kselftest_deps.sh: Support LLVM
- Fixes resctrl, breakpoints suspend, ftrace, and tracing tests
selftests/resctrl: Skip L3_CAT when no exclusive cache portion exists
selftests: breakpoints: Skip step_after_suspend_test on systems
without a wakeup capable RTC
selftests/ftrace: skip gcov symbols when picking a function to probe
selftests/ftrace: Avoid unlink error on first run
selftests/ftrace: Add nice dependency
tracing/selftests: Fix incorrect invocation of exit_fail
- Fixes and enhances resctrl test use link lists to manage IMC counters
selftests/resctrl: Introduce linked list management for IMC counters
selftests/resctrl: Replace counter index references with pointers
selftests/resctrl: Enable dynamic management of IMC counters via
linked list
diff is attached.
thanks,
-- Shuah
linux_kselftest-next-7.4-rc1
- Improves selftest build, run-time, and install framework
Installs even when some modules fail to build, prints summary of test
results at the end of the default test run, keeps the build status from
wrapping to success so build errors are reported, and optionally records
per-suite build and install results:
selftests: lib.mk: Don't fail install if no modules were built
selftests/lib.mk: run_tests: print summary at the end
selftests: keep the build status from wrapping to success
selftests: optionally record per-suite build and install results
- Adds LLVM support to kselftest_deps.sh
selftests: kselftest_deps.sh: Support LLVM
- Fixes resctrl, breakpoints suspend, ftrace, and tracing tests
selftests/resctrl: Skip L3_CAT when no exclusive cache portion exists
selftests: breakpoints: Skip step_after_suspend_test on systems
without a wakeup capable RTC
selftests/ftrace: skip gcov symbols when picking a function to probe
selftests/ftrace: Avoid unlink error on first run
selftests/ftrace: Add nice dependency
tracing/selftests: Fix incorrect invocation of exit_fail
- Fixes and enhances resctrl test use link lists to manage IMC counters
selftests/resctrl: Introduce linked list management for IMC counters
selftests/resctrl: Replace counter index references with pointers
selftests/resctrl: Enable dynamic management of IMC counters via
linked list
Hi Andi, issue linked below), not a cleanup. Thanks Igor rust: i2c: remove TryFrom<&Device> implementation for &I2cClient A single fix for the Rust I2C abstractions, targeting 7.4. Removes an unsound TryFrom<&Device<Ctx>> conversion whose input and output reference lifetimes were not tied together, letting safe Rust upgrade a short-lived &Device borrow into an arbitrarily long-lived &I2cClient that could outlive the underlying device's removal (use-after-free, reported with a KASAN reproducer). The conversion had no users, so it's simply removed rather than lifetime-fixed. Signed-off-by: Nicol=C3=A1s Antinori <[email protected]> Signed-off-by: Igor Korotin <[email protected]>
ARM: - pKVM state isolation: years after pKVM started being enabled upstream, we finally get the basics in the form of state isolation. The vcpu state is now off-limit for the host for protected VMs. - pKVM also grows a hypervisor-private memory allocator, allowing it to deal with sub-page allocation, much like everywhere else. - pKVM also lands a trace_printk() equivalent, which hopefully will make debugging a bit easier. - First shot at annotating portions of the KVM/arm64 code to be extracted and built on s390. The real fun is yet to come. - Allow pre-faulting of stage-2 canonical mappings from userspace, joining x86 and s390 in implementing this feature. - Add a reverse mapping infrastructure for shadow stage-2, significantly improving performance when MMU notifiers kick in, and avoiding full unmap of all shadow tables for this VM. - Next step of GICv5 enablement, adding support for the IRS block, and providing both SPI and LPI support. This is the first point where KVM/arm64 can support an SMP GICv5 guest. - As a preliminary to eventually enabling CCA, add a bunch of infrastructure to KVM/arm64, splitting some of the basic operations into individual backends (normal VM, normal pKVM VM, protected pKVM VM). This allows CCA to later slot in without polluting the rest of KVM with its firmware-driven nonsense. - Make ID registers immutable from the point where a vcpu is able to run, even if it fails to run. This prevents KVM from sampling untrusted values. - Restore some type checking to the EL2 object. KVM/arm64 originally had some strong type checking between the kernel and the EL2 object, but lost it along the way when the private hypercall interface was (somewhat pointlessly) converted to SMCCC. Type checking is back, syscall style, and with added sparse goodies. - Expand the FFA support to FFA_NOTIFICATION_*, and add some sanitisation of the protocol that pKVM relays to the "trusted" runtime. - Make GICv3 RD assignment more robust to userspace nonsense - Convert the remaining MMU fault handler backends to kvm_s2_fault_vma_info and co., fixing a number of bugs in the process. - Fix the SError/SEA selftests to be both more robust and less braindead. - Fix a smattering of documentation bugs, some of them as a result of our AI friends spitting out credible assertions based on non-existing symbols. - The usual collection of low impact bug fixes (SMCCC, timers, PMU). Loongarch: - Add separate vmid support. - Simplify MSI interrupt injection. - Add crash hypercall support. - Allow to set pv_feature until vCPU run. - Enable HW page table walk automatically in selftests. s390: - rework page allocation for secure guest variable storage - Selftests and documentation improvements. - Replace get_zeroed_page with kzalloc. - Fix corner cases of floating interrupt injection. - Initial arm64 on s390 support. x86: - Clean up the handling of vcpu->arch.xen.long_mode to be consistent and correctly handle 32-bit/64-bit alignment, and various other bug fixes have accumulated over the months since v1. - Grab KVM's SRCU "lock" in kvm_zap_gfn_range() to fix a recurring bug where callers fail to do so. - Fix a variety of issues in the pre-fault code that are mostly benign in the current code base, but will show up in big ways if/when the pre-faulting logic is used to implementing prefetch-on-fault for the TDP MMU. - For PREEMPT_RT=y kernels, drop the rmaps' individual bit-spinlock and just walk the rmaps' with mmu_lock taken. On the write side (which always uses mmu_lock), the bit-spinlock was assuming that preemption was disabled, but that is *not* true when rwlocks become sleepable. - Prepare a memory_fault exit (paired with -EFAULT) when KVM hits an error PFN, e.g. so that userspace can resolve transient issues instead of killing the guest. Convert a variety of WARN()+EFAULT paths into KVM_BUG_ON()+EIO so that KVM can hard commit to filling memory_fault on -EFAULTs that occur in the page fault path. - Fix a NX hugepage un-accounting bug where KVM would always uncharge the shadow MMU, even when handling TDP MMU pages. - Mask off the address space ID when checking for illegal usage of kvm_set_internal_memslot() to prevent false negatives on the sanity check. - Explicitly zero reserved flags when delivering a SynIC message to avoid leaking a byte of stack information to the guest. - Rework TDX's handling of the canonical MMU root level to not rely on userspace to fill CPUID correctly, as doing so lets userspace trivially trigger a KVM_BUG_ON(). - Reject KVM_SET_NESTED_STATE if userspace "restores" L1 with EFER.LMA=1 && EFER.LME=0, which confuses KVM into trying to configure an 64-bit MMU without PAE. - Ignore EFER.LMA (clear it from KVM's cached save state) if EFER.LME=0 when preparing L2 state, to fix another way to confuse KVM's MMU (and because real hardware also ignores EFER.LMA). - Improve KVM's sanity checks for a misconfigured MMU to (hopefully) detect all of the ways KVM can botch EFER.LMA vs. CR4.PAE. - Remove the "full" out-param from kvm_x86_ops.flush_tlb_gva() as the param is only used to avoid what effectively amounts to a single memory write. - Fix a mostly-benign bug where KVM can write through a guest's read-only mapping due to not checking the error code when expediting emulated MMIO page faults. - Honor the guest's view of the "EFER.LMSLE must be zero" defeature so that userspace can provide migration compatibility between Rome and Milan+. - Pend a KVM_REQ_EVENT request when an exception is morphed into a nested VM-Exit, otherwise KVM can fail to actually deliver the nested VM-Exit, e.g. when injecting a page fault. - Add support for PML on SVM. - Add support for virtualizing Bus Lock Detect on SVM, and fix a number of DR6 bugs and warts along the way. - Fix a variety of warts in KVM's handling of guest TSC, kvmclock, and timekeeping in general, as a (big) first step towards addressing several longstanding problems with the kvmclock implementation. Most notably, fix a precision issue where get_kvmclock_ns() computed the clock from the *host* TSC without applying guest TSC scaling, causing systemic drift from the values the guest computes from its own TSC. - Rip out KVM's shadow timekeeping structures, now that ktime snapshots are powerful enough to replace it. - Misc fixes and cleanups. x86 (AMD): - Fix a benign-in-practice bug where KVM unintentionally sets a non-zero error code when delivering exceptions to SEV-ES+ guests. - Force a new ASID in both VMCBs on pCPU migration to fix a bug where KVM can run a VMCB with a stale ASID due to the tracking being per-CPU, not per-VMCB. - Return INVALID_INPUT to the guest instead of exiting to userspace with -EIO if KVM can't access "guest request" buffer, i.e. try to keep the guest alive if the guest or userspace goofs. x86 (Intel): - Enable Notify VM-Exits (now called Instruction Timeout in the SDM) and Bus Lock VM-Exits for TDX guests when they're enabled by userspace (KVM forgot to wire up the TDX Module knobs). - Move all common (between VMX and TDX) APIs/helpers to common.h/main.c, and change all namespace prefixes from "vmx" to "vt". - Fix a thankfully benign bug (due to other areas of KVM being hardened) where userspace can bypass INIT_MEM_REGION's address wrap check by providing a nr_pages that will overflow a u64 when converted to bytes, and fix an also- benign off-by-one bug in the check (inclusive vs. exclusive). - Set the vmcs.GUEST_ACTIVITY_STATE back to ACTIVE when userspace sets KVM's mp_state to anything other than HALTED, e.g. so that a vCPU doesn't get stuck in HLT if userspace emulates RESET. guest_memfd: - Take the invalidate lock when unbinding a dying file to fix a race with kvm_gmem_invalidate_end() that results in KVM leaving the MMU invalidation count elevated. Not taking the lock in the first place was pure misguided paranoid. - When binding a memslot, purge the bindings if storing the new memslot fails, as Xarray's "store range" API can subtly fail partway through. - Establish memslot<=>guest_memfd bindings *after* the memslot is ready, as the memslot becomes reachable the instant the binding is installed. - Don't grab a page refcount when reloading an SNP VMSA and stop returning a "struct page" from guest_memfd's PFN lookup altogether, to ensure that KVM doesn't hold any unnecessary refcounts (the lifetime of the page is ensured by MMU notifiers and similar hooks). Preventing unnecessary refcounts greatly simplifies supporting in-place SHARED=>PRIVATE conversions. - Add support for in-place PRIVATE<=>SHARED conversion, i.e. allow a single guest_memfd instance to be used for both PRIVATE and SHARED variations of CoCo guests' memory (though not at the same time). This eliminates the need to double allocate guest memory for TDX and SNP, and is basically a hard requirement for pKVM, which relies on being able to preserve memory contents on conversions. - Hack-a-fix a deadlock bug in ->error_remove_folio() by returning -EBUSY if the filemap invalidate lock is contended. Punt on a proper fix for the moment, as a proper fix likely involves reworking truncate_error_folio(). - Add a pile of selftests for in-place conversions. - Misc guest_memfd cleanups Generic: - Move some configuration items to preprocessor symbols, to help with arm-on-s390's need to compile the same code twice with different values. - Allow KVM implementations to choose alternative device names, also for s390's support of ARM virtualmachines. - Switch the KVM-VFIO interface and external consumers over to standard file-based reference counting, eliminating all external KVM symbol exports. Selftests: - Rework KVM selftest's handling of memory regions all so that PPC can force its page table allocations to be naturally aligned. - PPC support. - Fix emulation of VMPTRST and VMPTRLD when eVMCS is in-use to match real Hyper-V's behavior. - Saturate L2's TSC frequency if stacking L1 and L2 scaling multipliers exceeds what hardware supports, as attempting to run L2 with an illegal multiplier will either cause VM-Entry to fail (VMX) or trigger a #GP when writing MSR_AMD64_TSC_RATIO (SVM). The #GP is thankfully benign in the grand scheme as even "unsafe" WRMSRs have exception fixup. - Rework KVM selftest's handling of memory regions so that PPC can force its page table allocations to be naturally aligned. - Clean up selftest's VMX instruction helpers, and drop an absurd number of completely useless return values, e.g. functions that unconditionally return %true and then have every caller assert success. - Add selftests support for Zhaoxin CPUs. - Overhaul the TSC scaling test to add a regression test for the saturation behavior, and to increase its coverage in general. - Fix selftests usage various NUMA syscalls to account for an undocumented, but known since 2007, off-by-one kernel bug. Add helpers to try and avoid re-introducing the same flaws in the future. - Automatically run xAPIC IPI migration test (between NUMA nodes) when possible, as the entire point of the test is verify KVM's handling of page migration of the APIC backing page. - Misc cleanups.
Hi, The main change adds composable Landlock controls for namespace types and Linux capabilities, thanks to new LSM hooks (merged via the LSM tree). A umount race condition is also fixed. with your master branch. Kernel changes have been tested in the latest linux-next releases, and I recently fixed a new merge conflict (see the related merge commit message). Test coverage for security/landlock is 91.8% of 2864 lines according to LLVM 23, and it was 91.6% of 2625 lines before this PR. Regards, Mickaël -- Landlock update for v7.4-rc1
A tiny batch of auxdisplay changes, which resided in Linux next for more than enough without any regression reports. Please, pull. Thanks, With Best Regards, Andy Shevchenko auxdisplay for v7.4-1 * Fix ABI documentation formatting * Miscellaneous cleanups
regmap: Changes for v7.4 This is a relatively busy release, mostly due to the general cleanup work which people have been doing throughout the kernel - for regmap that's mostly been some work from Peng Fan. I also added some more tests for the sparse caches to catch some gotchas people might run into trying to improve the maple cache. - Test very high register numbers to help people avoid a nasty gotcha trying to optimise the maple cache. - Make more use of scoped lock and allocation guards. - A couple of other smaller improvements and fixes.
spi: Updates for v7.4 Quite a lot of work in the SPI subsystem this time around, almost all in drivers rather than the core. As well as the general cleanup/fix work we're seeing over most of the kernel there's been some substantial performance work to two existing drivers and support for a number of new devices including a couple of new drivers. There was also a big overhaul of the spidev_test utility from the Pengutronix people. - Improvements for spidev_test to cover additional use cases, plus be a bit easier to use. - Substantial performance work in both DesignWare and Tegra210 QSPI drivers, making their interrupt handling more efficient to drive up hardware utilisation. - Documentation clarifications. - Fixes for some runtime PM and error handling issues. - Support for Nuvoton MA35D1, Qualcomm QPIC SNAND v2, Renesas R-Car Gen5 and X5H and Realtek RTD1625. Some of these updates are also present in my ASoC pull request to Takashi, b4's base selection logic picked a SPI commit for an ASoC branch and I didn't notice until far too late after I'd already merged the ASoC branch and stacked further work on it.
please pull the latest timers/vdso branch from:
-10-20
Updates for the VDSO subsystem:
- Ensure that the CLOCK_AUX base calculations are properly scaled against
the base timekeeper. The update function failed to take the fractional
nanosecond part into account, which results in a rounding error.
- Cleanup and consolidate the vsyscall headers to get rid of pointless
copies all over the architectures.
- Replace a runtime conditional in the time getter function for namespaced
clocks by simple pointer arithmetic which speeds up the read function.
Thanks,
tglx
please pull the latest irq/drivers branch from:
-10-20
t redirection
Updates for interrupt chip drivers:
- Remove the futile attempts to cleanup resources when the probing of the
main interrupt chip fails for SiFIVE/PLIC devices. If that probe fails
the system will stall immediately afterwards in the boot process
without reaching a state where the error could be diagnosed. The lack
of resource cleanup led to a frenzy of AI detected/assisted "fixes"
which just make the code pretend to be correct for no value.
Remove the existing half baked cleanup and immediately panic the
machine when the probe fails. That's far more useful than letting it
proceed and stall out a millisecond later with no information about the
root cause.
- A series of fixes for the ARM GIC-V3 driver addressing a potential
double free, a bitmask overrun on 32-bit ARM and a OF node leak.
- Automatically set the IRQ_DOMAIN_FLAG_DESTROY_GC when a interrupt
domain is created that also allocates the generic interrupt chip during
domain creation. That removes the requirement for manually setting the
flag in the domain creation info structure when it contains a valid
entry for allocating the generic interrupt chip. Remove the therefore
redundant setters of IRQ_DOMAIN_FLAG_DESTROY_GC in the existing
drivers.
- Add support for Annapurna Labs FIC version 2 and 3 and implement
affinity control for the demultiplexed interrupts by utilizing the
recently merged interrupt redirection infrastructure.
- Convert the ACPI device ID structures to named initializers
- Consolidate the IPI related constants for RISC-V interrupt controllers
- Add support for Qualcomm Purwa SoC interrupt chip and consolidate the
workaround for the previous version in Hamoa SoCs.
- The usual small fixes and improvements all over the place
Thanks,
tglx
please pull the latest timers/clocksource branch from:
ce-2026-10-20
/scm/linux/kernel/git/daniel.lezcano/linux into timers/clocksource
Updates for clocksource and clockevent drivers:
- Support for the Renesas RZ/N1 timers
- Rework of the per CPU and per cluster MIPS GIC timers to improve
performance, sched clock precision and to add VDSO support.
- The usual assorted pile of small fixes and improvements all over the
place.
Thanks,
tglx
please pull the latest timers/nohz branch from:
-10-20
ls
Updates for the tick/NOHZ machinery:
- Add the BLOCK_SOFTIRQ to the hotplug safe local softirq pending mask to
prevent false positive error messages. A BLOCK_SOFTIRQ can be pending
when a CPU goes offline as the subsequent cleanup will take care of the
outstanding completions.
- Remove a few redundant invocations of local_irq_save/restore() and
timekeeping_max_deferment() to speed up the NOHZ idle transitions.
Thanks,
tglx
please pull the latest timers/core branch from:
-10-20
n()/read()
Updates for the core timekeeping and timers subsystem:
- Futher cleanups for the POSIX timer exit/exec related code to simplify
the code flow and to make it more robust against future changes.
- Prevent tearing of timekeeper::ktime_sec which can be accessed without the
sequence count protection.
The timekeeper is updated by memcpy() with an uneven sequence count to
force readers into the retry path. On 64-bit machine the ktime_sec
member can be accessed atomically without the sequence count
protection. That is only correct when the update side memcpy()
guarantees atomicity at the 64-bit granularity. That's not guaranteed
due to debug options, compilers and instruction availability. If the
memcpy() does not provide the atomicity then the unprotected readers
can observe store tearing.
To prevent this write the ktime_sec member before the memcpy() so that
a non-atomic memcpy() will write the same data. A similar fix has been
done for the xtime_sec member, but the ktime_sec equivalent was missed.
- Prevent time64_to_tm() day truncation on 32-bit kernels
The function receives a 64-bit seconds value but stores the quotient of
the computation in a long, which truncates the result for large input
values. Cure this by using div_s64_rem() which stores the quotient in
s64 and only leaves the seconds-within-day reminder in a long, which is
guaranteed to fit. This fix comes with a corresponding kunit test to
prevent further mishaps.
- Mark data-racy accesses to the hrtimer_sleeper::task member.
The recent updates to KCSAN flagged these benign races. Annotate them
with new helper functions, convert all existing usage sites and mark
the task member private after that so that future users which fail to
use the helpers can be detected automatically.
- Address similar benign KCSAN flagged issues in the hrtimer, timer and
timer migration code.
- Fixes for a few selftest issues
=20
Thanks,
tglx
please pull the latest irq/core branch from:
-20
Updates for the generic interrupt subsystem:
- Skip programming of MSI/MSI-X related data while a PCI channel is
offline (Link is down) in the error recovery code path. Accessing an
offline channel results in a BUS error which affects the underlying
Root Port.
Check for pci_channel_offline() and if true avoid the writes and just
cache the modifications which are subsequently applied when the Link
has recovered.
- Prevent a stack UAF when a faulting interrupt thread exits. On X86 the
crash causes the stack to be discarded, which contains the callback
head for the exit task_work to run the destructor. If the stack is
clobbered before the destructor runs, then the indirect call of the
task work function ends up in a random place. Move the callback head
into the interrupt action to prevent that.
- Prevent an UAF in the interrupt thread exit code which can happen when a
faulting interrupt thread exits and races with a concurrent free_irq()
by synchronizing free_irq() against thread exit.
- Ensure that interrupt context accounting is accurate on interrupt
return when checking for soft interrupt invocation.
The code removed the hard interrupt context prematurely so that the
subsequent code appeared to be in task context according to the preempt
counter. That confuses ftrace, perf and K*SAN which get their recording
context wrong. On Preempt-RT this can result in misbehaviour when BPF
programs are attached to the affected region.
Cure it by preserving the hard interrupt count up to the point where
soft interrupts are actually invoked and switch directly to soft
interrupt processing right there. That avoids the intermediate "in task
context" state.
- The usual small fixes and improvements
Thanks,
tglx
dma-mapping updates for Linux 7.4: - several SWIOTLB initialization cleanups (Aneesh Kumar K.V, Francesco Valla) - exact page allocation for DMA pages (Qingfang Deng) - tools/dma build fixes (Sasha Levin) - minor fixes for various corner cases (Marek Szyprowski, Leon Romanovsky) and code cleanup (John Garry)
here is the first part of the I2C pull request for v7.4. The main changes are the new Novatek NT72676 driver, the qcom-cci clock and timing updates and a collection of smaller driver, core and DT binding improvements. Between family commitments and conferences, a few patches didn't make it into this round. If the merge window gets an extra third week, I'll use it to catch up with some of them. A second part will definitely follow, probably on Sunday. I already have some patches queued up, a few waiting for dependencies to be fixed and others simple enough to be safely included. Meanwhile, I wish you great holidays, both under and above the water. Andi i2c for v7.4, part 1 A mix of new hardware support, driver improvements and smaller core, DT binding and documentation cleanups. Core and helpers: - acpi: run ASUS and Dell touchpads at 100 kHz to avoid lag - core: return bool from check_functionality() and update users - smbus: limit block reads to the caller's buffer size - acpi: mark I2C transfer buffers as DMA-safe Drivers: - qcom-geni: several firmware node and runtime PM improvements - qcom-cci: several patches rework clock selection and timings - qcom-cci: enable SCL clock stretching - imx-lpi2c: fix DMA mapping device selection and cleanup - designware: tune RX FIFO thresholds to reduce interrupts - i801: respect SPD write protection when probing DDR5 modules - bcm2835: fully initialize clock configuration data Generic cleanups: - mux: simplify channel lookup and firmware node handling - core, busses: tidy up ACPI device ID tables - docs: clarify adapter lookup and fix a client driver example - xlnx: update maintainer for Xilinx IIC bindings - ljca: remove redundant adapter deletion New support and DT bindings: - add DW compatibles for Synaptics SL2610 and UltraRISC DP1000 - allow six DMA channels for R-Car Gen5 - add Allwinner A733 compatible to mv64xxx bindings - add support for Novatek NT72676 (new driver)
hte: Changes for v7.4-rc1 Updates minor fixes as follows: - prevent releasing GPIO before time expires in the test code - initialize spin lock before registering the chip in the provider driver
RTLA patches for 7.4 - Test actions in absence of threshold Cover the case which regressed in the past in tests. - More robust CPU count detection Parse /sys/devices/system/cpu/possible directly instead of going through libc for CPU count and sanity check against any mismatch with the number reported by tracefs / osnoise. - Add option to record IPI count in osnoise top In addition to counting IRQs, add an option to enable counting IPIs targetting the measurement CPU to the rtla-osnoise-top tool. - Improve runtime test usability Catch up with increased complexity of runtime tests with better defaults and more options available to the developer running the tests. - Simplify osnoise tracer option setting code Deduplicate osnoise tracer option setting code with macros to make it less error-prone and to make it easier to add new tracer options in the future. trace-tools-v7.4
runtime verifier updates for v7.4: - Improve lockdep annotation for reactors Reactors are not supposed to take locks, so they fit the LD_WAIT_FREE lockdep class. However, reactors may run in preemptible context and if the preempting code (tick or simply the scheduler) takes locks, we see a lockdep splat. Switch to LD_WAIT_SPIN to avoid the splat while documenting that reactors should still not take locks. - Add KUnit tests for reactors Add KUnit test cases to validate registration and reaction, this requires exporting some symbols and other minor fixes. - Use the right rv_this variable in the wakeup monitor LTL monitors were updated to use the generic rv_this static variable but this change wasn't propagated to the newly introduced wakeup monitor. This broke reactors for the monitor: update the it. trace-rv-v7.4
It was a reasonably busy cycle for docs; changes include: - Add the AGENTS.md symbolic link into the top-level directory in the hopes that LLMs will read it and produce better work. - The removal of the Assisted-by requirement, as concluded at the Maintainer Summit. - A new "testdocs" make target to run the documentation unit tests. - Lots of work on the Portuguese, and Chinese translations; there is now maintenance for the traditional Chinese translations as well. ...and the usual pile of minor fixes, documentation updates, etc. Expect a trivial conflict with the tip tree; otherwise should be clean.
Many thanks, -- Marco ------ >8 ------ Kernel Concurrency Sanitizer (KCSAN) updates for v7.4 - Avoid division by zero in kcsan_prandom_u32_max() - test: Do not count report printing time against test duration
Subject: [GIT PULL] sysctl changes for v7.4-rc1 MIME-Version: 1.0 Summary * Disallow partial vector updates Stage sysctl vector writes before updating. Removes the chance of leaving a sysctl vector partially updated due to erroneous input. This is not an atomic write; a concurrent reader can still see a partially updated vector. * Remove redundant sysctl config guards Remove locations where (CONFIG_SYSCTL && CONFIG_PROC_FS) was checked. They are superfluous as CONFIG_SYSCTL now depends directly on CONFIG_PROC_FS. * Rewrite selftests using KTAP helpers Each test now reports its own KTAP result and runs in a subshell. Test suite continues after failure. * Misc Fix a use-after-free in the selftests test_sysctl module. Quiet an unused variable warning in fs/proc/proc_sysctl.c:init_header(). Add tests for partial vector updates and the int jiffies converters. * Testing This series was run through the sysctl selftests and kunit in x86_64. It landed in linux-next between rc2 and rc3, giving the latest changes considerable of testing
Modules changes for 7.4-rc1 - Ignore local labels and mapping symbols during module load These symbols were already ignored during kallsyms address-to-symbol lookups. Filter them out earlier during module loading to reduce lookup overhead and prevent them from appearing in /proc/kallsyms. - Fix potentially incorrect access of SetOnce<T> when setting Rust module parameters. - Fix a potential read of an uninitialized count when printing taint information for unloaded modules. - Allocate the kmod argument array using kmalloc_array() in preparation for conversion to type-aware allocators. - Clean up includes in linux/kmod.h Add explicit includes of linux/umh.h to files that use usermode helpers. Then clean up the #include list in linux/kmod.h, notably removing the compatibility linux/umh.h include. - Remove the error-injection.h include from linux/module.h Add explicit includes of linux/error-injection.h to files that use the ALLOW_ERROR_INJECTION() macro and currently rely on it being provided indirectly via linux/module.h. Then remove the unnecessary linux/error-injection.h include from linux/module.h. - Replace __MODULE_STRING() with __stringify() in various drivers in preparation for removing the former macro. The changes to several #include lists have been reported to cause trivial conflicts in linux-next with the drm, drm-xe, and usb trees.
please pull the x86/sev lineup for v7.4-rc1. Thx. --- - Report in sysfs which SEV confidential computing features are enabled in the environment so that related components like a SVSM can query them and do appropriate configuration - Add support for a new AMD SEV instruction called RMPOPT which can be used to reduce the performance overhead of doing confidential guests' page ownership verification and the like. Work by Ashish Kalra
please pull the x86/platform lineup for v7.4-rc1. Thx. --- - Remove code for a no-longer supported Technology Systems 5500 board - Use named initializers for struct acpi_device_id in the OLPC platform driver
upcoming -rc cycle. 539 patches here and ~220 are queued for next week's batch. I'm seeing no merge conflicts at this time. Possible upcoming merge issues and their linux-next resolutions are: arch/riscv/Kconfig, vs riscv tree: https://lore.kernel.org/[email protected] mm/hugetlb.c mm/mm_init.c, vs liveupdate tree: https://lore.kernel.org/[email protected] drivers/misc/sgi-xp/xpc_uv.c, vs char-misc tree: https://lore.kernel.org/[email protected] fs/f2fs/f2fs.h, vs fs-next tree: https://lore.kernel.org/[email protected] fs/coredump.c, vs fs-next tree: https://lore.kernel.org/[email protected] fs/fuse/dax.c, vs fs-next tree: https://lore.kernel.org/[email protected] mm/internal.h, vs bpf-next tree: https://lore.kernel.org/[email protected] fs/f2fs/f2fs.h, vs fs-next tree: https://lore.kernel.org/[email protected] fs/xfs/libxfs/xfs_btree.c, vs fs-next tree: https://lore.kernel.org/[email protected] (read down a bit for Sasha's resolution) mm/mm_init.c, vs liveupdate tree: https://lore.kernel.org/[email protected] arch/arm64/mm/pageattr.c, vs arm64 tree: https://lore.kernel.org/[email protected] arch/um/Kconfig, vs uml tree: https://lore.kernel.org/[email protected] arch/arm64/kvm/mmu.c, vs kvm-arm-fixes tree: https://lore.kernel.org/[email protected] drivers/video/fbdev/ssd1307fb.c, vs fbdev tree: https://lore.kernel.org/[email protected] mm/sparse-vmemmap.c, vs memblock/for-next tree: https://lore.kernel.org/[email protected] Thanks. mm.git review status for linus..mm-stable Everything: Total patches: 539 Fixes: tags: 101 cc:stable patches: 67 Reviews/patch: 1.62 Reviewed rate: 76% Excluding DAMON: Total patches: 407 Fixes: tags: 84 cc:stable patches: 44 Reviews/patch: 2.00 Reviewed rate: 87% Excluding DAMON and selftests: Total patches: 360 Fixes: tags: 78 cc:stable patches: 44 Reviews/patch: 2.02 Reviewed rate: 89% Summary of patch series in this merge, ordered by descending size: - "selftests/mm: improve khugepaged coverage" (Kiryl Shutsemau (Meta)): Give khugepaged a proper workout. Extend the tests to all supported mTHP orders, check exactly which windows collapsed, and make scan completion deterministic. Race collapse against faults, pinning, fork and remap; verify that the contents survive. Add coverage for whole-page-table zaps and memory pressure too. - "selftests/mm: separate GUP microbenchmarking from functional testing" (Sarthak Sharma): Untangle GUP benchmarking from correctness testing. Move the benchmark into tools/mm, add a standalone harness-based GUP selftest, and move shared helpers into tools/lib/mm. Give each tool one job instead of mixing timing measurements with correctness checks. Cover the mapping, pinning and batch-size combinations explicitly. - "mm: Switch device DAX to section-based vmemmap optimization" (Muchun Song): Apply section-based vmemmap optimization to device DAX. Rework the backing metadata layout to save memory while preserving the handling of device memory hotplug and its different alignment and lifetime requirements. - "mm: Introduce section-based vmemmap optimization for HugeTLB" (Muchun Song): Cut the memory consumed by HugeTLB's struct page array with section-based vmemmap optimization. Arrange the metadata so large huge pages need fewer backing pages, while keeping initialization, teardown and the various hugepage configurations straight. - "mm/huge_memory: clean up and decouple the anon and file split helpers" (Kairui Song): Separate anonymous and file-backed folio splitting, which have rather different locking and bookkeeping requirements. Move the work into separate helpers, drop dead checks and tidy swap-cache handling. Fix error paths, including one that could leave a folio frozen. Keep the swap cache cases separate from file-cache splitting. - "mm: Unconditional per-VMA locks and cleanups" (Dave Hansen): Make per-VMA locking unconditional and clean up the old conditional code around it. This removes configuration-dependent plumbing and lets callers depend on one locking model rather than carrying both cases along. - "memcg: remove the v1 soft limit" (Shakeel Butt): Remove the old cgroup v1 memory soft-limit machinery. This has long since been superseded by the newer memory-control interfaces; hauling around a separate reclaim scheme for it no longer buys us much. - "read proc/pid/smaps_rollup under per-vma lock" (Suren Baghdasaryan): Read /proc/PID/smaps_rollup using per-VMA locks where possible, rather than holding mmap_lock across the entire walk. Retain the contention fallback and add tearing tests. This considerably reduces latency when another thread is busy changing its mappings. - "mm/damon: introduce data access-as-a-data attribute" (SJ Park): Teach DAMON to expose memory access observations as data attributes, making them available to the probe and filtering machinery. Extend the interfaces, documentation and tests so the new information can be used rather than merely collected. - "Remove PG_private by using page/folio->private checks instead" (Zi Yan): Get rid of PG_private and use the folio's private pointer to say whether private data is attached. Convert the filesystem users, including erofs, f2fs and md, and clean up the old accessors and flags. There are a few special cases, notably swapcache and hugetlb, which need explicit care. - "mm: make userland page table freeing RCU-safe" (Lorenzo Stoakes (ARM)): Make freeing userspace page tables safe against RCU readers. Sort out the page-table lifetime and locking rules so walkers cannot stumble over freed tables while mappings are being torn down. - "make unused huge shrinker memcg aware" (Qi Zheng): Make shmem's unused-huge-folio shrinker aware of memory cgroups, so reclaim can find those folios under the right memcg. Wire up the per-memcg tracking and its lifetime rules, and give the shrinklist its own lockdep class to avoid spurious dependency reports. - "mm: Drop pxd_ERROR()" (Anshuman Khandual): Remove the old pxd_ERROR() page-table checks and their architecture-specific baggage. Simplify the common page-table interfaces and callers now that these checks no longer serve a useful purpose. - "memcg: group struct fields by access pattern" (Shakeel Butt): Rearrange memcg's hot and cold fields according to how they're actually accessed. Keep frequently updated counters and their neighboring state from fighting over cachelines and reduce needless cacheline traffic. - "mm/damon/core: fix the size charged for a filter-trimmed region" (Donggeun Yoo): Fix DAMOS quota accounting when a filter trims a monitoring region. Charge only the part left after filtering, not the original region, and add KUnit coverage. Previously the excluded memory could eat into the quota and make schemes run more slowly than requested. - "mm/damon: add kunit and selftests for probes and probe weights" (SJ Park): Add more tests for DAMON probes and their weights, including validation and the results reported to userspace. This is mostly about catching regressions in the newer probe infrastructure before they become harder to diagnose. - "mm: memcontrol: constify the read side of the read side of the memcg API" (Tal Zussman): Mark the read-only parts of the memcg interface const, from folio and lruvec accessors to counters and swap helpers. Most of this is mechanical, but it makes the contracts clearer and lets the compiler catch accidental writes. - "mm/damon/vaddr: support {prep,apply}_probes" (SJ Park): Support the new prepare/apply probe operations in DAMON's virtual-address backend. This brings vaddr monitoring into line with the probe infrastructure and makes the added probe types useful there too. - "mm/mglru: clean up folio counters and flag usage" (Kairui Song): Simplify MGLRU's folio counters and flag handling. Remove redundant accounting paths and make the state transitions easier to follow without changing the intended reclaim policy. - "arch, mm/execmem: resolve confusion about set_direct_map_valid_noflush()" (Mike Rapoport (Microsoft)): Clarify and straighten out the set_direct_map_valid_noflush() interface across architectures and execmem. Make the requested mapping changes and the callers' expectations agree, rather than relying on subtly different architecture behavior. - "mm: zswap: free cold writeback folios promptly" (Alexandre Ghiti): Free zswap writeback folios as soon as their disk write completes. They are cold temporary buffers, so putting them on the LRU only makes reclaim rediscover them later. Extend swap-cache dropbehind and let zswap keep these folios off the LRU altogether. - "mm: gup: cleanup gup_fast call chain" (Aristeu Rozanski): Clean up the GUP-fast call chain and simplify how the fast-path helpers pass their arguments and results around. Keep the page-pin behavior the same while making the call sequence easier to maintain. - "mm: optimize zone-device memmap initialization" (Li Zhe): Speed up initialization of zone-device struct pages. Avoid redundant work when setting up large device-memory ranges, where touching every descriptor can get expensive. - "mm/zswap: shrink zswap_entry via a pool id" (Jianyue Wu): Reduce the size of zswap_entry by storing a compact pool identifier instead of a full pointer. Keep the pool lookup and lifetime handling correct while saving per-entry metadata. - "mm/damon: support access monitoring of hugetlb-backed memory" (Krishna Iyer): Let DAMON monitor hugetlb-backed memory too. Extend the relevant access checks and add coverage so those mappings no longer fall through a hole in the monitoring machinery. - "mm/execmem: fixes and cleanups for the ROX cache" (Mike Rapoport (Microsoft)): Tidy execmem's read-only-executable cache and fix its handling of the awkward allocation and release cases. The aim is to make the cache's ownership and permission transitions more predictable. - "zsmallc: remove old object read API" (Sergey Senozhatsky): Drop zsmalloc's old object-read API and move its remaining users to the supported access mechanism. This removes a duplicate interface which we no longer need. - "mm/mempolicy: stop copying state in the interleave paths" (Gregory Price): Stop copying mempolicy state in the interleave paths when a reference to the existing policy will do. This avoids extra work and makes the ownership rules less obscure. - "mm/mglru: speed up inc_min_seq() and fix cold/hot inversions" (Barry Song (Xiaomi)): Make MGLRU's generation advancement cheaper and fix cases where cold and hot folios end up in the wrong order. Adjust the counter and list handling so reclaim doesn't keep passing over the better eviction candidates. - "mm: Fix MF_DELAYED handling on memory failure" (Lisa Wang): Treat MF_DELAYED as a partially completed memory-failure operation, not an outright failure. Propagate that result correctly through shmem and the generic handler, fix the extra-reference accounting, and add tests for the resulting SIGBUS behavior. - "tools/mm/page_owner_sort: fix --sort, add module filter, improve usage" (Ye Liu): Fix page_owner_sort's --sort handling, add module-based filtering and make the usage output more helpful. This makes the tool less frustrating when tracking down who is holding on to pages. - "mm/damon: move damos filter range arguments validation to core" (SJ Park): Move DAMOS filter range validation into the core, where all callers can share it. Also close the sysfs read-twice races which could pass inconsistent ranges, and add tests for invalid input. - "mm/damon: misc cleanups" (Zenghui Yu (Huawei)): Clean up a collection of small DAMON rough edges in the core, interfaces and tests. No large behavior change here, just simpler code and fewer opportunities for confusion. - "mm/damon: cleanup code, add test cases, and update guidances in docs" (SJ Park): Clean up DAMON's core and interfaces, add missing test cases and bring the documentation into line with the code. These changes should make the newer facilities easier to understand and maintain. - "mm/damon: introduce hugepage_size probe filter" (SJ Park): Add a DAMON probe filter for hugepage size. Let users select a range of folio sizes through sysfs, validate the range and document the new interface, so monitoring can concentrate on memory backed by the desired hugepage sizes. - "selftests/mm: pagemap_ioctl test fixes and cleanups" (Zenghui Yu (Huawei)): Fix some pagemap ioctl test assumptions and clean up their setup and reporting. Make failures point to the operation that went wrong rather than to test harness bookkeeping. - "mm: avoid large folio splits when swap is unavailable" (Johannes Weiner): Avoid splitting large folios merely to attempt swap when no swap space is available. There is little point paying for an expensive split when reclaim cannot actually swap the resulting pages out. - "mm: workingset: fix the shadow node budget under MGLRU" (Hui Zhu): Fix the workingset shadow-node budget with MGLRU enabled. Keep the shadow entries within the intended limits so refault tracking does not quietly consume more metadata than it should. - "selftests/mm: TAP output and global-state fixes" (Song Hu): Fix selftests which produce misleading TAP output or fail to restore global settings after a run. A test ought to leave the system as it found it, particularly when a whole suite follows behind. - "mm: remove page_swap_entry()" (Tal Zussman): Remove page_swap_entry() and convert its remaining users to the folio and swap-entry helpers. Lose an old page-level interface and make the swap paths a little more consistent. - "mm: refactor zonelist constructors and iterators" (Gregory Price): Refactor the zonelist construction and walk helpers to reduce duplicated logic. Keep the allocation ordering rules intact while making it clearer how zones are selected. - "mm: kmemleak: batch the struct page scan" (Breno Leitao): Scan adjacent struct pages in batches instead of taking kmemleak_lock once for every single page. This preserves scan coverage and the lock-hold bound, while cutting overhead substantially on debug kernels. - "mm/damon: misc improvements in tests and documents" (Zenghui Yu (Huawei)): Fix some DAMON selftests which leave kdamond running or fail under Python safe-path mode, and improve the KUnit coverage and documentation. Nothing especially glamorous, but these are worth doing. - "mm/damon: introduce probe_hits_wsum DAMOS core filter" (SJ Park): Add a DAMOS core filter using weighted probe-hit counts. This gives schemes another way to select regions based on what the monitoring probes observed. - "mm/mglru: fix ineffective memory protection for non-kswapd reclaim" (Ridong Chen): Fix MGLRU's memory protection handling for reclaim outside kswapd. The protection settings weren't having the intended effect in these paths, leaving protected memory more exposed than requested. - "mm/damon: improve readability, clarity and test coverage" (SJ Park): Simplify a handful of DAMON core helpers, clarify their behavior and expand test coverage. There are no intended userspace-visible changes in this batch. - "mm: replace PF_KCOMPACTD/PF_KSWAPD with kthread_func()" (Kefeng Wang): Stop identifying reclaim and compaction workers through the PF_KSWAPD and PF_KCOMPACTD task flags. Use their kthread functions instead and remove the redundant flag plumbing. - "mm/hugetlb: fix surplus accounting and availability checks during demotion" (Longlong Xia): Fix HugeTLB surplus accounting and availability checks when demoting huge pages. Keep the counters and reservation decisions consistent as one huge page turns into several smaller ones. - "mm/damon: add kunit tests for probe_hits handling and probe params validation" (Jason Angelov): Add KUnit tests for DAMON probe-hit handling and invalid probe parameters. These cover edge cases that were too easy to miss in ordinary monitoring tests. - "mm/damon: fix misc bugs in kunit, quota goals and sysfs refresh_ms" (SJ Park): Fix a few DAMON bugs in KUnit tests, quota-goal handling and the sysfs refresh interval. Small fixes, but the incorrect results and control behavior were real. - "mm: zswap: optimize zswap invalidate and store" (Kefeng Wang): Simplify zswap's invalidate and store paths to avoid avoidable lookups and work. Keep the entry lifetime rules intact while making those frequent operations cheaper. - "mm: replace custom ratelimiting logic" (Pedro Falcato): Replace hand-rolled MM rate limiting with the common kernel helpers. There is no need to maintain another local version of the same mechanism. - "mm/vmalloc: minor cleanups" (Ye Liu): Tidy some vmalloc initialization and reporting code, and pull duplicated vmap-area insertion work into a helper. No functional changes are intended. - "mm/mglru: clean up isolate_folios for readability and clarity" (Ridong Chen): Clean up MGLRU's isolate_folios() so the decisions are easier to read and verify. Keep reclaim behavior unchanged while removing unnecessary twists in the control flow. - "Catch automatic storage in IDA and Maple Tree definitions" (Yury Norov): Catch IDA and maple-tree definitions placed in automatic storage where the lifetime rules are wrong or easy to get wrong. Add checks so such mistakes are harder to slip through unnoticed. - "mm, swap: some random fixes and cleanups" (Kemeng Shi): Fix and simplify a few unrelated swap paths, removing redundant work and tidying up error handling. A small collection of things which were better fixed than left lying around. - "mm/page_io: folio conversion cleanups" (Tal Zussman): Finish some page-to-folio conversions in swap I/O, removing obsolete wrappers and using folio operations consistently. The I/O behavior is intended to remain the same. - "mm/swap: skip empty clusters in the swapoff scan" (Youngjun Park): Skip empty swap clusters during swapoff instead of walking slots which have nothing to release. This avoids pointless work on sparsely used swap devices. - "mm: trace: decode architecture-specific VMA flags" (Meijing Zhao): Teach the VMA trace output to decode architecture-specific flags, rather than leaving them as unexplained bits. That should make tracing a good deal more useful when debugging unusual mappings. - "mm, swap: don't spin on a bad swap entry" (Breno Leitao): Stop repeatedly retrying a swap entry which is already known to be bad. Make the error path terminate cleanly instead of wasting CPU chasing an entry that cannot be used. - "mm/page_isolation: fix UBSAN shift-out-of-bounds in isolate_single_pageblock" (Qi Xi): Fix an out-of-range shift in isolate_single_pageblock() and tighten its associated boundary handling. UBSAN found the issue; the result should be more robust pageblock isolation. - "mm: khugepaged: fix tracepoint UAF" (Vernon Yang): Fix a use-after-free in khugepaged tracepoint handling. Make sure the information recorded by tracing stays valid for as long as the trace event needs it. - "mm/damon: fix DAMOS bugs in core, paddr and vaddr" (SJ Park): Fix several DAMOS problems across the core and physical- and virtual-address backends. The changes close error cases and bring the implementations back into agreement. - "mm/hugetlb_cgroup: move the per-node usage along with the folio" (Hongfu Li): Move HugeTLB per-node usage accounting when folios migrate between nodes or are reparented to another cgroup. Otherwise numa_stat can retain stale charges and even underflow when the folio is freed. - "docs/core-api: memory-allocation: add k[mz]alloc_obj() and clarify kmalloc" (Mike Rapoport (Microsoft)): Document the typed k[mz]alloc_obj() allocation helpers and clear up some kmalloc guidance. Make it easier for callers to choose the right interface. - "selftests/mm: Validate selections and scope memfd_secret setup" (Tianyi Chen): Check selftest selections before running and confine memfd_secret setup to the cases that actually need it. Avoid confusing failures caused by the test harness itself. - "mm/damon: move zero damos quota target_value handling to the core layer" (SJ Park): Handle a zero DAMOS quota goal target in the core rather than making each user of the interface invent its own rule. Keep quota decisions consistent across callers. - "mm/damon: Introduce a huge page collapsing mechanism using auto tuning" (Asier Gutierrez): Add an auto-tuned DAMON mechanism for collapsing huge pages. Use monitoring feedback to decide when collapse is worthwhile rather than forcing one fixed policy onto every workload. - "kmemleak: fix stale documentation and raise the verbose default" (Breno Leitao): Bring the kmemleak documentation up to date and require a third confirming scan before verbose kernels print a suspected leak. The extra scan helps suppress transient false positives in noisy debug builds. - "mm/memory: improve insert_pages() error handling" (Avi Weiss): Tighten insert_pages() error handling so partial failures are reported and cleaned up consistently. The caller should not have to guess how far the operation got. - "mm/damon: allow NULL or unstarted damon_ctx parameter for damon_call()" (SJ Park): Make damon_call() handle NULL and not-yet-started contexts safely. Simplify the rules for callers and avoid an indefinite wait on an invalid state. - "mm/damon: introduce pgidle_set probe filter type" (SJ Park): Add a pgidle_set DAMON probe filter, giving monitoring users another way to select pages by their idle-tracking state. Wire it through the filter interfaces and tests. - "mm/damon/core: remove unused helper functions" (Cheng-Han Wu): Remove DAMON core helpers which no longer have callers. Keep the API surface smaller rather than retaining dead code just in case. - "mm: stop calling pmd_folio() on special PMDs" (Gregory Price): Avoid calling pmd_folio() on special PMD mappings that have no struct page. The old assumption could fault in procfs walkers; use the normal-folio checks and handle those mappings properly. - "mm: remove three unused helpers from mm.h" (Tal Zussman): Remove three unused helpers from mm.h. Fewer obsolete interfaces for the next person to stumble over. - "mm/damon: improvements in efficiency, error handling, documents" (Liew Rui Yan): Skip needless DAMOS quota work once the quota is full, propagate a missing sysfs error and tidy a couple of comments. The ignored error could make a monitoring-start request appear successful when it wasn't. - "docs/mm/damon/design: add explanation of nr_snapshots" (Liew Rui Yan): Explain DAMON's nr_snapshots accounting in the design documentation and straighten out the associated terminology. Make it clearer what users should expect from that counter. - "selftests/cgroup: fixes for test_zswap on single core VM" (Wilson Felipe Pereira): Fix two test_zswap failures on single-CPU VMs. Wait for the exiting child's cgroup to become unpopulated before reconfiguring it, and avoid another test assumption which breaks under constrained scheduling. - "docs/ksm: fix advisor documentation and comment" (Jinjiang Tu): Correct the KSM advisor documentation and a misleading code comment. Keep the description aligned with how the advisor actually works. - "Fix bugs in HugeTLB allocation when mem_cgroup_charge_hugetlb() fails" (Ackerley Tng): Fix HugeTLB allocation cleanup when the memcg charge fails. Make sure failure exits undo what was allocated rather than leaving stale accounting or resources behind. - "mm, memcg: fix memory.peak reset clobbering other fds' watermark" (Ridong Chen): Fix memory.peak reset handling so resetting one file descriptor doesn't overwrite the watermark kept for another. Keep those per-open measurements independent as intended. - "mm: reject zone device folios in more folio walkers" (Gregory Price): Reject zone-device folios in page walkers that cannot safely handle them. Extend the existing checks rather than assuming every folio has ordinary system-memory backing. - "percpu: remove code with no effect" (Sang-Heon Jeon): Remove a few pieces of percpu code which no longer do anything. There is no reason to keep maintaining dead paths.
please pull the x86/fpu lineup for v7.4-rc1. See end of mail for some merge fun. Thx. --- - Document and cleanup the signal frame handling with the goal to allow process migration between CPUs with different FPU capabilities but which use only a common set of FPU features, i.e., think checkpoint/restore. By Andrei Vagin - Consolidate how XSTATE features are checked by doing them once during boot with the intent of removing cpu_has_xfeatures(). Latter will happen in the next cycle. Work by Eric Biggers - Other cleanups
please pull the x86/cpu lineup for v7.4-rc1. Thx. --- - Rework early CPU features detection code to handle a case where recorded CPU capabilities are temporarily cleared in an interruptible region. The practical implication of this lead to, for example, KASAN complaining due to 5-level pagetable support disappearing intermittently; by Ihor Solodrai - AMD Zen5 started reporting TLB sizes as multiples of 32 so adjust the TLB sizes reporting code to consider that - Return the proper retval when trying to enable user shadow stacks
Seven IPE patches for the Linux v7.4 merge window: - Fix an extra empty audit record on enforcement changes ipe_audit_enforce() started an audit buffer but logged the state change with audit_log(), which emits its own record. Ending the unused buffer produced an additional empty AUDIT_MAC_STATUS record every time the enforcement state was changed. - Keep the name and token tables in sync with their enums The audit name tables now use designated initializers, so each name stays bound to its enum value, and static assertions on the policy parser token tables break the build if an enum value is added without a matching token. - Constify token_default() and correct a comment about policy text ownership, with no functional changes - Fix an invalid sgid value in an audit event example in the docs - Point the docs to the new IPE website and test suite repository These commits have been tested in linux-next for weeks without any issues. Thanks, Fan -- ipe/stable-7.4 PR 20261019
please pull the x86/cache lineup for v7.4-rc1. Thx. --- - Push down into arch code the rounding of bandwidth control user values due to the different ways ARM and x86 report MBA - Fix task reporting for the default group for systems which support only bandwidth monitoring, aka Haswell vintage computing - The usual fixlets and improvements
please pull the x86 spec bugs lineup for v7.4-rc1. Thx. --- - AMD Zen6's BTB has per-context tagging so there's no need for the expensive SRSO SafeRET mitigation anymore; add glue to detect and handle that - Fix Spectre v2 mitigation reporting for RETPOLINE=n builds
Thanks, Guenter ------ watchdog updates for v7.4 commit window * Core/generic - Replace __MODULE_STRING() with __stringify() - Use assign_bit() where applicable - Use DEFINE_SIMPLE_DEV_PM_OPS and pm_sleep_ptr for dev_pm_ops - Fix repeated words and typos in comments - Differentiate scenarios when watchdog is closed * Added device support in existing drivers - mtk_wdt: Support for MediaTek MT8167 and MT8127 - apple_wdt: Support for T8140 - s3c2410_wdt: Support for Exynos 5515 * Various other minor bug fixes and improvements
please pull the x86/boot lineup for v7.4-rc1.
Thx.
---
- Rework the early decompressor some and drop the version of panic() there
which used vsnprintf() supplied by the EFI stub even in legacy boot cases,
where the EFI stub is not present. By Ard Biesheuvel
- Fix unbootable VMs with CONFIG_PVH=y and CONFIG_KASAN_GENERIC=y where the
compiler decides not to inline __builtin_{memcmp,memset}(). Force the
inlining with the kernel's own __inline_* versions; by Mauricio Faria de
Oliveira
- Cleanups and fixlets
please pull a x86/asm fix for v7.4-rc1.
Thx.
---
- Fix local_{add,sub}() to support source immediates which are wider than
signed 32-bit quantities
This pull request completes Alpha's conversion to GENERIC_ENTRY and enables a range of kernel features through Kconfig updates, including UBSAN, gcov, kmemleak, page-table checking, fast GUP and sparse IRQs. It includes TLB and MMU context fixes prompted by glibc test-suite failures, HugeTLB support for 64KB, 512KB and 4MB pages, and fixes for poisoned-page faults and page-table checking. Machine-check handling is improved on Tsunami platforms, with bounded EV6 logout decoding, Clipper environmental event reporting and safer firmware console-log scanning. Other changes add self-extracting compressed kernels with support for all kernel compression formats, Alpha-specific XZ tuning, perf register and user-stack sampling, and Alpha support in the seccomp selftests. The series also fixes user stack-pointer reporting and IRQ entry ordering, adds 128-bit shift helpers, cleans up linker sections, and updates Kconfig help. alpha updates for v7.4 - alpha: add bounded Clipper console-log scanning - alpha: decode Clipper environmental events - alpha: decode and acknowledge Tsunami system machine checks - alpha: bound EV6 logout decoding by the processor area - alpha: describe the Tsunami system machine check frame - alpha: move Tsunami machine check handling to err_tsunami.c - alpha: fill in pc for software event samples - alpha: add HAVE_PERF_REGS and HAVE_PERF_USER_STACK_DUMP support - alpha: use user_stack_pointer() in KSTK_ESP() and dump_elf_thread() - alpha: stop storing the user stack pointer in pt_regs - alpha: fix stale user_stack_pointer() - selftests/seccomp: add Alpha support to seccomp_bpf - alpha: do not skip TLB shootdown IPIs for kthread-borrowed mms - alpha: do not clear remote MMU contexts in migrate_flush_tlb_page() - alpha: invalidate the local context in flush_icache_user_page() - alpha: invalidate the local context in flush_tlb_mm() - alpha: fix the local TLB invalidate in the UP flush_tlb_page() - alpha: fix the local TLB invalidate in flush_tlb_page() - alpha: invalidate the local context in flush_tlb_page() - alpha: only use a targeted tbi() when the target mm is really current - alpha: run check_mmu_context() from finish_arch_post_lock_switch() - alpha: load the MMU context when switch_mm() switches the current task - alpha: implement hugetlb support - alpha: align hugetlb mappings in arch_get_unmapped_area() - alpha: define granularity hint PTE bits - alpha: describe the PTE read and write enable bits - alpha: handle VM_FAULT_HWPOISON in do_page_fault() - alpha: add missing page_table_check_pte_clear() to ptep_get_and_clear() - alpha: default NR_CPUS to 32 for Wildfire - alpha: link platform help text to the alphalinux.org wiki - alpha: correct system descriptions in Kconfig help text - alpha: replace dead links in Kconfig help text - alpha: support the remaining kernel compression formats - alpha: add self-extracting compressed kernel boot stub - xz: add arch-specific tuning for alpha - alpha: select SPARSE_IRQ - alpha: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM - alpha: select ARCH_WANT_LD_ORPHAN_WARN - alpha: discard .eh_frame and the relocation sections - alpha: select SYSCTL_EXCEPTION_TRACE - alpha: select ARCH_USE_MEMTEST - alpha: select HAVE_GUP_FAST - alpha: select ARCH_HAS_DEBUG_VM_PGTABLE - alpha: add ARCH_SUPPORTS_PAGE_TABLE_CHECK support - alpha: add ARCH_HAS_PTE_SPECIAL support - alpha: add HAVE_ARCH_THREAD_STRUCT_WHITELIST support - alpha: select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE - alpha: select HAVE_ARCH_COMPILER_H - alpha: select ARCH_SUPPORTS_INT128 - alpha: select ARCH_HAS_FAST_MULTIPLIER - alpha: select ARCH_SUPPORTS_ATOMIC_RMW - alpha: select EDAC_SUPPORT - alpha: select HAVE_DEBUG_KMEMLEAK - alpha: select ARCH_HAS_GCOV_PROFILE_ALL - alpha: select ARCH_HAS_UBSAN - alpha: enter hardirq context before looking up the irq descriptor - alpha: enable GENERIC_ENTRY
This set contains several fixes for bugs found by static analysis, fuzzing and code review. They mostly involve invalid input, e.g. from userspace, configfs or remote nodes, and are unlikely to be seen in normal usage. Thanks, Dave
Could consider these commits for 7.4-rc1? The most notable change is to support superblock sharing for composefs, thanks to Giuseppe again: it needs a vfs change, which already goes through vfs tree [1] so I merge the corresponding vfs branch. Another one switches to iomap for file-backed mounts on unencoded inodes, which enables efficient sub-folio I/Os. The others are all random ones. All commits have been in -next and no potential merge conflict is observed. Thanks, Gao Xiang [1] https://lore.kernel.org/r/20261016-vfs-7.4-rc1.shared.super-9c2de4415e8b@brauner Changes since last update: - Support superblock sharing for file-backed mounts - Use iomap for file-backed mounts on unencoded inodes - Minor fixes and cleanups
please pull the EDAC updates for v7.4-rc1. Thx. --- - Orphan several EDAC drivers: i82975x, x38, xgene, i3200. Those have been receiving just drive-by updates and no one really uses them. At least there are no traces of usage on the mailing lists. So, with the advent of AI-generated fixes frenzy, and because no one can really test fixes on those, it is time to sunset them and point them towards the eternal happy hunting-grounds - Add a dummy EDAC driver with which the EDAC core glue can be exercised in a VM for the cases where one does not necessarily have access to the hardware. This glue should be extended with all the necessary functionality that needs and can be tested this way - Add an EDAC driver to reset bitfix filters in Intel hardware. Bitfix filters are a hw mechanism for tracking stuck bits in memory and CPU arrays due to, e.g., silicon aging. Those filters can become clogged by transient errors accumulating over a long system uptime so this intel-bff (LOL :)) driver glue resets those filters on overflow. Work by Qiuxu Zhuo and Tony Luck - Export get_cpu_cacheinfo_id() for use by the new intel-bff driver - i10nm: Handle the case where hw disables memory controllers which leads to reporting the wrong memory controller when reporting an error - The now-usual AI-powered fixes and other misc cleanups and updates all over the place
thermal-7.4-rc1 Merge branch 'thermal-drivers' thermal: gov_step_wise: Fix stale mitigation vote with non-zero lower boun= ds to receive thermal control updates for 7.4-rc1. These are mostly updates of thermal drivers including a new Exynos ACPM thermal driver for Google GS101, new Renesas RZ/G3L thermal sensor support, new Qualcomm MSM8952 TSENS support, new Qualcomm PMAU0102 Master BandGap temperature monitor support in DT bindings, and new rugged Panther Lake support in intel_tcc_cooling. Moreover, the AN7583 driver is extended to register separate thermal zones for bandgap, GbE and CPU (its DT bindings are updated accordingly). There are also multiple fixes and assorted cleanups, as usual. Specifics: - Make the Intel powerclamp thermal driver reject invalid window_size values, drop redundant clamp() from duration_set() in it, and simplify 4 functions in it (Thorsten Blum) - Add rugged Panther Lake support to the intel_tcc_cooling thermal driver (Srinivas Pandruvada) - Fix temperature selection around 0 C in the int340x thermal driver, drop redundant else from proc_thermal_add() in it, and simplify slider_def_*_set() in it (Thorsten Blum) - Drop unbalanced paren from cpu-idle-cooling.rst (Manuel Ebner) - Use %pe to print error pointers symbolically in the thermal control code and fix assorted typos in comments in it (Sumeet Pawnikar and Hemanth Selam) - Add the Exynos ACPM thermal driver for Google GS101, along with DT bindings and a MAINTAINERS entry (Tudor Ambarus) - Add Renesas RZ/G3L thermal sensor support and DT bindings, and move default calibration values to per-SoC match data (Biju Das) - Add Qualcomm MSM8952 TSENS support and the corresponding DT binding compatible (Muzaffer Kadir) - Document the Qualcomm PMAU0102 Master BandGap temperature monitor compatible in the DT bindings (Dhruvin Rajpura) - Extend the QCom TSENS v2 trip temperature limits to the hardware range of -204=C2=B0C to +204=C2=B0C to prevent interrupt storms when ope= rating beyond the previous software limits (Priyansh Jain) - Fix temperature threshold map indexing in the QCom SPMI temperature alarm driver to prevent out-of-bounds reads (Georgi Djakov) - Describe the additional bus clock required by the Amlogic T7 thermal sensor and switch the driver to the clk_bulk API to manage multiple clocks (Ronald Claveau) - Request the Airoha EN7581 IRQ after thermal zone registration to prevent the interrupt handler from accessing an unregistered or already freed thermal zone (Vitaliy Sochnev) - Fix the Airoha AN7583 ADC mux field mapping, serialize access to the shared ADC, and verify mux selection to avoid invalid temperature readings and spurious critical shutdowns (Vitaliy Sochnev) - Register separate thermal zones for the AN7583 bandgap, GbE and CPU sensors, and update the DT bindings to use one thermal sensor cell to select the sensor (Vitaliy Sochnev) - Fix signed integer overflow in the Renesas RZ/G3E temperature-to-code conversion, preserve compare interrupt state across runtime PM, and prevent overlapping temperature conversions (Ovidiu Panait) - Remove redundant trip window validation and runtime PM pm_runtime_mark_last_busy() calls from the Renesas RZ/G3E driver (Ovidiu Panait) - Propagate reset assertion failures from Renesas RZ/G3E suspend and attempt to restore power if the sensor was active (Pengpeng Hou) - Stop the TI bandgap alert IRQ before removing sensor interfaces and cancel pending alert work to prevent use-after-free on driver removal (Weigang He) - Validate Spreadtrum sensor IDs read from the device tree before using them for register offsets and array indexing (Weigang He) - Convert the TI OMAP bandgap DT bindings to schema and document the DRA752 compatible and thermal sensor cells (Bhargav Joshi) - Use DT property helpers matching the signed temperature and unsigned hysteresis types defined by the thermal zone bindings (Rob Herring) - Reuse common error handling code in the power allocator governor bind callback (Markus Elfring) - Constify the thermal zone device operations in the i.MX9 driver (Christophe JAILLET) - Fix kernel-doc parameter names and firmware node references in the cooling device registration helpers (Aryan Sinha) - Correct the documented return value of ti_bandgap_get_sensor_data() to describe validation errors and potentially NULL stored data (Karl Mehltretter) - Ensure NUL-termination when copying the cooling device command-line argument in tmon and fix the associated string truncation warning (Florian Fainelli) - Fix undefined behavior caused by a signed shift in the tmon thermal zone binding display (Liu Jing) - Fix wording in tmon comments (Hemanth Selam) - Simplify cpufreq_set_cur_state() in the cpufreq_cooling thermal control driver (Thorsten Blum) Thanks!
pm-7.4-rc1 Linux 7.3-rc7 to receive power management updates for 7.4-rc1. This time, the most visible part are the ACPI CPPC updates from Christian Loehle, including CPPC cpufreq driver changes, even though updates of cpufreq drivers proper are still the largest topic group. However, the updates of cpufreq drivers depend on the ACPI CPPC updates, so they should really be counted together and that is well over 1/2 of the total commit count. Interestingly enough, almost all of the updates included here are fixes or cleanups, with some new feature support in the amd-pstate cpufreq driver and IPQ9650 support in the qcom-nvmem cpufreq driver. The runtime PM documentation improvements from Brian Norris can also be mostly regarded as fixes, but a new kunit test goes along with them. Specifics: - Fix multiple issues related to input validation, synchronization, access safety, memory layout and register field validation, and error handling in the ACPI CPPC library (Christian Loehle and Sumit Gupta) - Select the frequency-invariance callback per CPU in the CPPC cpufreq driver and create the FIE worker before enabling PCC callbacks in it to avoid queueing work through a missing worker and dereferencing a NULL pointer (Christian Loehle) - Update the CPPC cpufreq driver entry in MAINTAINERS and add a new entry for the ACPI CPPC library (Christian Loehle) - Minor fixes in various cpufreq drivers (Alexander Koskovich, Daniel Schwierzeck, Frank Zhang, Haotian Zhang, Kathiravan Thirumoorthy, Sumeet Pawnikar, and Xueqin Luo) - Fix wrong behaviors on multi-node servers in the Loongson cpufreq driver (Huacai Chen) - Reject NULL from cpufreq_cpu_get() in the Rust code (Mehmet Koseoglu) - Add suspend OPP to mediatek cpufreq driver and DT (Ryan Brue) - Fixups for a few bugs identified by Sashiko in the amd-pstate cpufreq driver (Mario Limoncielloi, Wentao Guan) - Initial support for maximum frequency capacity handling on Zen6 client in amd-pstate (Mario Limonciello) - Fix for amd-pstate-ut with 'Requested CPU Min frequency' BIOS option (K Prateek Nayak) - New Zen6 tuning values for EPP in amd-pstate (Mario Limonciello, Vishal Badole) - amd-pstate documentation fix (Karl Mehltretter) - Restrict deferred downscaling to low load for shared policies in the conservative cpufreq governor to avoid undesirable CPU frequency reduction in some cases (Shengming Hu) - Serialize sugov_start() against rate limit updates in the schedutil cpufreq governor to avoid using a stale rate limit value (Hui Su) - Prevent cpuidle governors menu and teo from returning idle state 0 after it has been disabled (Xueqin Luo) - Replace min_t() with the better alternatives in the intel_idle driver and make it use 2-argument strscpy() (Andy Shevchenko) - Fix two repeated phrase instances in cpuidle (Hemanth Selam, Syazwina Fazrul) - Add rugged Panther Lake support to the intel_rapl power capping driver and make it use %pe for printing error pointers (Srinivas Pandruvada and Sumeet Pawnikar) - Update and improve runtime PM documentation and add a kunit test for supplier idle/suspend (Brian Norris) - Add a pm_runtime_dont_use_autosuspend() call to pm_runtime_reinit() to ensure autosuspend disabling on driver teardown (Joshua Crofts) - Ignore page-zero RAM in E820 checksum during hibernation on x86 to avoid rejecting images created after kexec() (Matthias Goergens) - Add resume event mapping for PMSG_POWEROFF to the PM core to allow it to carry out device shutdown in the future (Mario Limonciello) - Add DPM watchdog to prepare/late/early/noirq/complete phases of device suspend and resume (Mayank Rungta) - Update swsusp.txt references to swsusp.rst in hibernation documentation (Li Jun) - Fix use-after-free of perf domain in netlink doit handlers for energy models (Fan Wu) - Add synchronize_rcu() back to cpu_pm_unregister_notifier() after it was removed inadvertently in previous development cycles to avoid use-after-free (Bradley Morgan) - Unregister CPU PM notifier outside the timer lock in the timer-ti-dm clocksource driver (Bradley Morgan) - Fix typo "sucessfully" in a comment in pm_clk_add_clk() kerneldoc comment and typo "hierachy" in a comment in pm-graph (Hemanth Selam) - Fix the return value in dev_pm_opp_get_of_node() kernel-doc (Karl Mehltretter) Thanks!
acpi-7.4-rc1 ' Linux 7.3-rc7 to receive ACPI support updates for 7.4-rc1. The most significant change here is the rework of the core ACPI device enumeration code to avoid initializing ACPI power management prematurely for devices with unmet dependencies. This essentially is a problem fix, but it requires taking PCI device enumeration ordering into account among other things, so it is far from straightforward. There was an attempt to do this in the 7.3 time frame that had to be reverted, so this time it is done much more carefully. There is also an ACPI thermal control update rearranging the code to register thermal class cooling devices under specific parents, which is visible in sysfs. This helps to figure out what is represented by those devices much more easily, but it also allows the binding of cooling devices to trip points in thermal zones to be adjusted so it need not rely on specific cooling device data usage in thermal drivers. From the number of commits perspective, the most visible part is the one replacing acpi_get_first_physical_node() with acpi_bus_get_primary_device() everywhere and dropping the former that was inherently racy and generally unsafe to use. Fortunately, the maintainers involved responded timely and all of that could be done within one development cycle. This material had a merge conflict in linux-next with the sound tree as per https://lore.kernel.org/lkml/[email protected]/ Another quite visible part is Dave Jiang's series fixing multiple issues reported by Sashiko in the ACPI APEI support code with a PCI AER improvement on top. It took several iterations of this to make Sashiko happy and the code in question should be much more robust going forward. One other thing worth mentioning separately is that the ACPI bus type is now going to be registered as a "companion" one and it will not be possible to register a driver binding directly to a struct acpi_device. All of the existing users of those drivers in the tree were converted to platform drivers in the previous cycles, so this is just a final step in a longer journey. Apart from the above, there are many fixes, mostly in drivers, with a noticeable exception of a fix in the code binding devices to their ACPI companions, new IOVT IOMMU support in ACPICA, new _Ixx object support for suspend-to-idle on x86, multiple new quirks, mostly related to unused ACPI power resources and backlight handling, and assorted cleanups. Specifics: - Make the core ACPI device enumeration code stop attempting to initialize ACPI power management for devices before they are known to be present and functional (Rafael Wysocki) - Simplify and clean up the core ACPI device enumeration code on top of the previous adjustment and reduce debug noise coming from it (Rafael Wysocki) - Fix locking in the code binding devices to their ACPI companions, prevent it from replacing a valid ACPI companion pointer with NULL incidentally, improve its messaging (including debug noise reduction), and reduce its overhead by making it skip the cases in which no ACPI companion may exist early (Rafael Wysocki) - Reduce runtime memory footprint of struct acpi_device by rearranging fields in it (Andy Shevchenko) - Update the driver core to allow bus types without drivers to be registered as "companion bus types" without driver-related sysfs attributes and register the ACPI bus type as a companion one (Rafael Wysocki) - Use strscpy() instead of strcpy() in the ACPI sysfs interface (Ruslan Vagner) - Remove __meminitdata from hmat_adist_nb declaration preserving it even when CONFIG_MEMORY_HOTPLUG is not set to prevent notifier chain corruption in some cases (Alejandro Lucero) - Prevent a NULL pointer dereference when attempting to read the table length after a mapping bookkeeping failure during an initrd override invocation with permanent table mappings enabled (Slavin Liu) - Use for_each_populated_zone() in get_node_num() in the MRRM table pareser (Sang-Heon Jeon) - Use vsnprintf() in acpi_os_vprintf() to prevent memory corruption resulting from overly long diagnostic messages that may not fit into a static buffer used by ACPICA and may be produced by a malformed ACPI table (Vlatko Kosturjak) - Ignore leading root scope prefix in string _UID match to allow AMD IOMMU matching to work as expected in some cases (Mario Limonciello) - Adjust message printing macros for ACPI objects to use dev_fmt() for more consistency with the analogous dev_*() macros (Rafael Wysocki) - Add _Ixx GPE wake indicator support to the x86 suspend-to-idle handling code (Saranya Gopal) - Clear driver_data before free in the ACPI PCI Link driver to prevent a dangling pointer from being used later (Jiale Yao) - Accumulate the queued flag across error sections of a CPER record in ghes_do_proc() to prevent it from being cleared by a later section or entry that does not queue memory-failure work (Breno Leitao) - Map a raw PCI AER Capability image field by field to prevent information loss from occurring while processing it (Dave Jiang) - Update a stale driver source reference in the ACPI APEI EINJ driver documentation (Prabhakar Pujeri) - Reject CPER records with an out-of-range error_data_length or an error status block length wrapping a u32 in the EFI CPER driver (Dave Jiang) - Address multiple assorted issues in the ACPI extlog driver (Dave Jiang) - Address two issues related to CXL in the ACPI APEI GHES driver (Dave Jiang) - Read only validated fields in cper_mem_err_pack() (Dave Jiang) - Validate memory error section length before payload access, prevent writes past array bounds from occurring and sanitize software metadata in the ACPI APEI GHES driver (Dave Jiang) - Make cxl_cper_handle_prot_err() static (Dave Jiang) - Add IOVT IOMMU support to ACPICA (Bibo Mao) - Fix PCC OperationRegion command offsets in ACPICA (Sudeep Holla) - Fix memory leak in acpi_ds_create_field() related to the handling of internal_pcc_buffer allocations (Breno Leitao) - Fix memory leak due to leftover devm_kcalloc() argument in the ACPI fan driver (Rafael Wysocki) - Fix backlight unregistration ordering in the ACPI video bus device driver (Rafael Wysocki) - Update the thermal core to allow the registration of thermal class cooling devices under specific parents and convert the ACPI fan, ACPI processor, and ACPI video bus device drivers to do so (Rafael Wysocki) - Adjust the ACPI thermal zone driver to use thermal class cooling device parent information for binding cooling devices to trip points in thermal zones (Rafael Wysocki) - Use cooling device data that is a better match for a given driver instead of a struct acpi_device pointer that had to be used for this purpose previously in the ACPI fan and processor drivers (Rafael Wysocki) - Fix acpi_thermal_guess_offset() in the ACPI thermal zone driver for thermal zone devices with a 273.0=C2=B0K offset (Hans de Goede) - Define a free for ACPI objects allocated by ACPICA helpers and use it to simplify AML error handling in the ACPI fan driver (Rafael Wysocki) - Switch over the users of acpi_get_first_physical_node(), that was inherently racy and therefore not really safe to use, to use its replacement acpi_bus_get_primary_device(), and eliminate the former (Rafael Wysocki) - Add !CONFIG_ACPI stubs for acpi_find_child_device() and acpi_device_uid() (Mario Limonciello and Robin Murphy) - Fix bogus cycle count values on systems without _BIX in the ACPI battery driver (Armin Wolf) - Fix NULL pointer dereference on allocation failure and report relative state of charge as CAPACITY in the ACPI SBS driver (Itay Shem-tov and Guangshuo Li) - Add lid_init_state quirk for Razer Blade Stealth 13 (Early 2020) RZ09-0310 to the ACPI button driver (Ian Gallagher) - Add new quirks to force the native backlight on Dell OptiPlex AIO 7410 35W and Acer Nitro AN515-58 in the ACPI video bus device driver (Chitransh Mandhaniya and Dirga Yuza) - Fix the shared memory signature handling in the ACPI PCC address space handler, free the PCC mailbox channel on operation region deactivation, and avoid unnecessary repeated computations of the PCC operation region command timeout (Sudeep Holla) - Fix a log message typo in the ACPI NUMA support code (Hemanth Selam) - Zero-initialize capability query result in the ACPI Platform Firmware Runtime Update and Telemetry driver to avoid disclosure of kernel stack data to user space (Karl Mehltretter) - Replace the remaining built-in/module check for CONFIG_ACPI_WMI in a header file with IS_ENABLED() macro (Lalit Shankar Chowdhury) - Retry probing battery docks after hotplug in the ACPI docking station driver to avoid missing ACPI add notifications (Vibhor Goel) - Detach device after resource transition failure in pnp_device_probe() to avoid blocking later manual PNP configuration attempts (Myeonghun Pak) Thanks!
regulator: Updates for v7.4 This is quite a quiet release, especially given the general onslaught of cleanup patches seen elsewhere. There is some of that, but not as much as I'm seeing elsewhere relatively to the size of the subsystem. We do have some new drivers as well, plus Linus Walleij has done a big overhaul of the AB8500 driver including feature buildout. - Substantial cleanups and feature additions for the ST Ericsson AB8500 - Overhaul of the configuration for the LP872x. - A bunch of DT binding conversions - Support for Maxim MAX20024, MPS MPQ4210, Nexperia NEX10000UB
sched_ext: Changes for v7.4 This depends on sched/core, which carries the sched_ext hooks for proxy execution, and should be pulled after it. The shortlog and diffstat are against v7.3 with sched/core merged. for-7.3-fixes was merged into for-7.4 six times during the cycle, once to receive a change the CID cluster work built on and otherwise to resolve conflicts with development here, mostly the proxy execution work. Five fixes went into for-7.3-fixes in the days before v7.3 was cut and missed the release. They come in through this pull, three of them marked for stable: balance callbacks left queued across a pick retry, a use-after-free on a CPU going offline, and bypass bugs that could stall a task. - Proxy execution can now be enabled together with sched_ext. A BPF scheduler can opt in to receive mutex-blocked tasks that donate their scheduling context to the lock owner and place them itself. - Lazy preemption: a BPF scheduler can preempt or kick a CPU lazily, deferring the switch to the next return to user space or tick, as the fair class can. - Sub-schedulers: a parent now learns which child runs on each CPU it delegated and when a cap change takes effect. A detaching child loses its caps before the parent restores the CPUs. - New kfuncs re-enqueue single tasks from a dispatch queue iteration and report a cgroup's CPU count and a CID's NUMA node. The CID topology now includes clusters. - Hot path optimizations: dispatch queue and task lookups compare keys inline, remote task moves no longer take a dispatch queue lock twice, and sub-scheduler hooks cost nothing without sub-schedulers. - Kfuncs callable from tracing programs are hardened against NMI and IRQ nesting, which could hard-lock the CPU or pick a wrong idle CPU. - Built-in dispatch queues no longer allocate per-CPU state that grew with the square of the CPU count. - Header syncs with the scx repo, a BTF workaround for pahole 1.32, and selftest fixes and coverage.
things going on here. First, TDX host systems currently consume ~0.4% of physical memory for their own memory metadata. This is all-or-nothing; you either pay the 0.4% or can not use TDX. A new TDX module feature (Dynamic PAMT) allows this metadata to be allocated for 2MB of host memory at a time. This, of course, saves precious DRAM when TDX utilization is low on a host. Second, the TDX ABI has fixed-size "quotes" that are passed around during attestation operations. These 128k buffers are far too small for post-quantum cryptography where the quotes grow substantially. The TDX module now has the ability to enumerate the sizes of the quote buffers. Plumb the new size enumeration into the kernel. -- - Enable dynamic TDX memory metadata allocation (DPAMT) - Allow more flexible quote buffer sizes
cgroup: Changes for v7.4 - A write to cgroup.subtree_control or cgroup.type could hang in D state for as long as a task pinning a dying controller took to exit, as syzbot reported. The wait is now interruptible. - cpuset: the deadline bandwidth check ran on cpusets that weren't valid partition roots, failing cpuset writes with -EBUSY while deadline tasks existed. The CPU count the fair class takes from cpuset assumed a shared hierarchy that cgroup1 may not have. - Finding a cgroup's effective controller state no longer walks up the hierarchy, for per-I/O users such as nvmet. io.stat reads of cgroups without block devices skip the stat flush. - cpuset v1-only code moved to the v1 file and the exclusive flag dropped from v2, with documentation corrections for partition roots and boot-isolated CPUs. - Dead cgroups fail writes with -ENODEV consistently, plus small cleanups. - Selftest fixes, most visibly for tests that skipped on machines with many mounts, and a new pids.events notification test.
workqueue: Changes for v7.4 - Flushing a workqueue now visits only the queues used since the last flush instead of one per possible CPU. Idle flushes get 10 to 100 times faster on large machines, which XFS hits on every log force. - Per-cpu workqueues are built through the same attribute path as unbound ones and get a max_active of their own, continuing the work to turn them into an affinity scope of unbound workqueues. - New tracepoints for work items turning CPU-intensive, rescuer mayday and rescue events, and BH workers yielding with work pending. - A KCSAN annotation and small cleanups.
pgd_clear() ones are pretty mundane. But the W^X ones are worth calling out. Effectively, the checks that were supposed to be looking out for Write+Exec permission mappings were busted. This fixes them, so we should all be on the lookout for new warnings, both false positives and real ones. -- - Fix void/int conditional in pgd_clear() - Fix spurious warning on __add_pages() failure - Make W^X detection actually work
tweaks are getting disabled if debugfs is not available. Allow initialization to proceed even in the face of debugfs failures. -- * Don't make ITMT enablement depend on debugfs
the "old microcode" list up to the May 2026 release. This continues the policy of intentionally lagging Intel's releases by roughly six months, so when the kernel complains, it it for _really_ old microcode. -- - Refresh old_microcode defines with the May 2026 release
NIOS2: update for v7.4, part 2 - Declare __mulsi3 export
using NR_CPUS_DEFAULT as if it were the actual, in-use max number of CPUs. Move it over to use NR_CPUS instead. I suspect this one being in-tree for a few years means that the vast majority of kdump users are on distro kernels that don't drop NR_CPUS below the defaults. -- - Resolve NR_CPUS versus NR_CPUS_DEFAULT confusion
please consider pulling the following gfs2 changes for 7.4. Thanks, Andreas gfs2 changes - Two journaled data inode fixes (fix journaled truncate range end offset, fix the escaped block copy in gfs2_before_commit). - When reading a new resource group from disk, validate its boundaries. - To eliminate lock contention, get rid of the per-filesystem sd_async_glock_wait queue and wait for the individual glock locking events instead. - Shut up sparse RCU warnings by marking ip->i_gl as __rcu. Accessing it through gfs2_inode_glock() -> rcu_dereference_protected() where we know that the pointer cannot change. - Some more minor fixes and cleanups.
Here's the pull-request with pmdomain and cpuidle-psci updates for v7.4. Note that, this time there are a couple updates for pm qos included as well. Details about the highlights are as usual found in the signed tag. Kind regards Ulf Hansson pmdomain core: - Add a genpd config to support unknown initial status - Add support system wide resume latency constraints - Enable a non-CPU device in a CPU PM domain to do power on - Fall back to use device node name for domain idle states pmdomain providers: - cpuidle-psci: Initialize the PM domains in powered off state for OSI - cpuidle-psci: Move initialization a bit earlier in the boot sequence - qcom: Add NMXC power domain for Nord - qcom: Add support for SM7250, Kuno and MSM8952 power domains - renesas: Add support for r8a774a3 SYSC power domains - renesas: Fix lockdep false positive for r8a78000 - riscv: Add RPMI device power service - st: Add the actual power domains on U8500 - st: Convert Ux500 PM domains to schema pm qos: - Add a flag for system wide latency constraints - Add lockless read for flags
m68k updates for v7.4
- Add and enable support for the SVEthLANa Ethernet interface on the
Atari SuperVidel FPGA expansion card,
- Enable support for the IDE interface on the Amiga CS-Lab Warp
expension card,
- Defconfig updates,
- Miscellaneous fixes and improvements.
Thanks for pulling!
Here's the pull-request with the updates for MMC and MEMSTICK for v7.4. Details about the highlights are as usual found in the signed tag. Kind regards Ulf Hansson MMC core: - Add a power-off-delay-us DT property to support HW specific delays - Add mmc_send_tuning_timeout() to allow hosts to specify a timeout - Enable hosts to control the re-programming of the crypto keys MMC host: - dw_mmc: Add a common watchdog and convert the various timeouts to use it - dw_mmc: Expose the watchdog state in debugfs - dw_mmc-rockchip: Use a tighter per command tuning timeout - greybus-sdio: Convert to devm_mmc_alloc_host() - meson-gx: Enable the bus pipeline clock on T7 - rtsx_usb_sdmmc: Start card power-up at 3.3V - sdhci-cadence: Add Altera Agilex5 SD6HC support - sdhci-cadence: Add Cadence SD6HC support - sdhci-msm: Add support for the MSM8952 and Maili variants - sdhci-msm: Use pm ops to better manage restoring of crypto keys - sdhci-of-dwcmshc: Disable CQE error halt request for Rockchip - sdhci-pxav3: Disable clock inversion for SD HS cards - sunplus: Fixup initialization for DDR modes - sunxi: Add support for Allwinner B288 - vub300: Remove the driver for the obsolete HW
Some issues were found by AI but nothing dramatic. The signal changes are related to upgrading the toolchains supported by AMD= . Hardened MicroBlaze cores are used in AMD/Xilinx chips, and they will be supported for another 10+ years. New tests were run as part of this effort,= and that's how the signal stack issues were found. The KUnit patches have been reviewed by David, and he agreed that they can = go through my tree. Thanks, Michal Microblaze patches for 7.4-rc1 - Add Kunit support - Update signal handling Small changes: - coding style, typos - don't use "new" ASM pseudocode - fix refcount leak in cpuinfo code - prevent ptrace writes to MSR and pt_mode - enable Xilinx DMA driver by default - build userprogs for the correct endianness
Here's the primary pull-request for this merge window for the GPIO subsystem. Nothing stands out as particularly interesting, it's been a calm cycle. We have three new drivers, support for more models and lots of updates across many modules (details are in the signed tag as usual). There are also some minor changes and additions to the in-kernel GPIO API. Merges are the usual mix of pulls from Andy's intel tree, immutable branches from Lee Jones and my own tags provided for cross-tree developments. Please consider pulling for v7.4. Thanks, Bartosz gpio updates for v7.4-rc1 GPIO core: - provide a new controller API: gpiochip_generic_get_config() - return -EOPNOTSUPP instead of -ENODEV to user-space if it requests hardware timestamping on systems where it's unavailable (no user-space regressions reported) New drivers: - add a driver for ROHM BD73800 PMIC GPIO controller - add a driver for Axiado AX3005 SGPIO controller - add a driver for Analog Devices AD7768 GPIO controller New hardware support: - extend gpio-rcar with support for R-Car X5H (R8A78000) - extend gpio-tegra186 with support for Tegra 268 Driver changes: - refactor and improve gpio-rtd1625: switch to modern or better fitting interfaces and improve coding style - improve error handling of return values of platform_get_irq_optional() in several drivers - normalize the return value of the gpio_chip::get() callback in gpio-siox in order to not propagate invalid values up to the GPIO core - implement gpio_chip::get_direction() for gpio-pcf857x - use managed variants of notifier registration functions in several drivers - remove legacy gpio_set_value_cansleep() as it has no more users - add pinctrl support to gpio-realtek-otto - add runtime PM support to the gpio-regmap helper module - add more ACPI GPIO quirks for various hardware - stop needlessly reading gpio_chip::base in gpio-pxa - add support for tracking of direction of generic GPIO chips with no direction registers via pinctrl backend to gpio-mmio (use the new core API: gpiochip_generic_get_config()) - use the "safe" variants of debugfs_create_file() in gpio-sloppy-analyzer - use device name as GPIO chip label in gpio-omap - refactor bit ops in gpio-dln2 - prepare gpio-it87 for upcoming kmalloc_obj() conversion Devicetree bindings: - document new model in gpio-pca95xx - allow the gpio-hogs property in gpio-zynq and fsl,qoriq-gpio - allow the gpio-ranges property in gpio-realtek-otto Misc fixes: - add missing MODULE_ALIAS() to gpio-crystalcove - fix a comment typo in example GPIO tools - fix unbalanced brackets in documentation - add names to regmaps in gpio-mvebu to avoid collisions in debugfs output - fix GPIO lookup using relative paths in GPIO ACPI
window. The bulk of added lines are kunit tests that comprehensively verify the core functionality of the power sequencing framework. Other than that, we have another pwrseq driver: Renesas RZ/G3L Power Ready and support for more models in pwrseq-pcie-m2. We also added a new consumer-facing API in the form of pwrseq_is_controllable() function which allows consumers to check if a given target resource is actually host-controllable. The merge commits you see are: - immutable branch provided to cross-tree users of the new API: pwrseq_is_controllable() - pulling in of mainline tags whenever upstream fixes would conflict with changes planned for v7.4 All the code has spent a considerable amount of time in linux-next. Thanks, Bartosz power sequencing updates for v7.4-rc1 Power sequencing core: - add a suite of kunit test cases for the power sequencing core functionalities - provide a new consumer API: pwrseq_is_controllable() New Drivers: - add the Renesas RZ/G3L Power Ready driver which provides information on power readiness for various IPs on RZ/G3L Driver changes: - use pwrseq_is_controllable() to report controllability to consumers in pwrseq-qcom-wcn and pwrseq-pcie-m2 - add support for PCIe switch topologies to pwrseq-pcie-m2 - add the PCI ID for Foxconn WCN7850 to pwrseq-pcie-m2
This update includes the following changes: API: - Fix algif_skcipher source SG overrun. - Allow hmac(sha512) for non-root users. Algorithms: - Add wrapper for zeroing AES key context. - Avoid redundant stream initialisations in zstd. Drivers: - Remove hisilicon/sec. - Handle digest-only authenc requests in atmel. - Handle zero-length skcipher requests in mxs-dcp. - Lower the default priority of caam/qi2. Others: - Optimise key comparison in rhashtable lookup that uses constant parameters.
Patches from Andrey Albershteyn to prepare for XFS fsverity support: - Report verification errors through fserror, instead of only through an unstructured log message and generic I/O error return - Move the reporting of STATX_ATTR_VERITY into the VFS, so that each fsverity-capable filesystem doesn't need to do it. This also fixes a bug where btrfs didn't return STATX_ATTR_VERITY in attributes_mask - Make the VFS prevent enabling DAX on fsverity files, so that it will be handled in a single place for ext4 and XFS - Move ext4 and f2fs's code to read verity metadata from the pagecache into shared code, so that XFS will be able to use it too - Export fsverity_ensure_verity_info() for XFS scrub to use - Pass all-zeroes hash to ->write_merkle_tree_block() so that XFS will be able to implement an optimization for sparse files
- Migrate the x86 and riscv optimized implementations of various AES modes (ECB, CBC, CBC-CTS, CTR, XCTR, XTS) into lib/crypto/. This makes the library APIs be properly accelerated on these architectures, while still accelerating crypto_skcipher as well. It removes a lot of redundant glue code, since the crypto API boilerplate no longer needs to be duplicated for these architectures. It also fixes the longstanding issue where optimizations for these AES modes were disabled by default on these architectures. - Optimize AES-XTS on SPARC64 using the SPARC crypto opcodes - Move the SipHash code into lib/crypto/ - Update the ChaCha and Poly1305 functions to take size_t lengths, resolving issues where lengths over INT_MAX were mishandled - Make frame pointer unwinding work properly in some of the x86 assembly functions, by following the standard %rbp convention - Add helper functions for zeroizing structs - Make a few documentation improvements
removal from me with the follow-up from Mark, cleanups for bitmaps parser from Shashank and a couple Rust docs fixes from Georgios. All patches spent in -next for over a month; applied on top of v7.3 and boot-tested with no issues. Thanks, Yury bitmap updates for v7.4 - __MAKE_OP() removal (Yury, Mark); - bitmap parsing fixes (Shashank); - Rust docs updates (Georgios).
Hi Linus,
Thanks,
Tzung-Bi
------
chrome-platform: Updates for v7.4
* Improvements
- Poll for role swap completion in cros_ec_typec.
* Fixes
- Fix wrong returned data and length for deferred response in
transport protocol.
- Check boundary for EC-returned data length in cros_ec_typec.
- Fix a regression for older ChromeOS devices after applying
db65a06d10b3 ("ACPI: EC: Convert the driver to a platform one").
* Cleanups
- Fix typos.
Hi Linus,
Thanks,
Tzung-Bi
------
chrome-platform-firmware: Updates for v7.4
* New
- Rename drivers/firmware/google/ -> drivers/firmware/coreboot/ and
corresponding Kconfig names.
- Separate firmware_attributes_class from drivers/platform/x86/ to
drivers/firmware/ so that it is available for non-x86 platforms.
- Add CFR (coreboot form representation) driver to expose the
attributes via sysfs.
* Improvements
- Use named initializers for acpi_device_id.
This is the next round of the Rust support. This one carries a big diff
due to the `zerocopy` vendored library update, but that is just a mostly
mechanical import in a single commit.
All commits have been in linux-next for 2 rounds or more.
I also did a test merge with your status from a couple hours ago, and it
looks good, without conflicts at the moment.
I am expecting a few easy conflicts with other trees: char-misc, DRM and
Kbuild -- the resolutions in linux-next are fine except that:
- The Kbuild one should remove `RUSTC_HAS_SPAN_FILE` from its new
location in `scripts/Kconfig.toolchain`.
- The DRM one in `rust/kernel/mem.rs` should clean `rustfmt` with:
use crate::prelude::*;
// TODO: `Alignment` should be moved here as well, Rust moved it upstream in 1.96.
pub use crate::ptr::Alignment;
Cheers,
Miguel
Rust changes for v7.4
Toolchain and infrastructure:
- Update vendored 'zerocopy' crate to v0.8.62 (released 2026-10-08).
This update advances 8 releases, with 3 of them carrying most of the
changes. It contains new features as well as fixes. However, almost
nothing has changed that requires updates on our side (a move of our
non-ASCII change and the addition of an SPDX license identifier).
- Generate Rust KUnit test suites for doctests reusing the
'#[kunit_tests]' and '#[test]' attributes instead of C FFI
functions, which allows to remove the generated C glue file.
Relatedly, simplify 'kunit_assert!' by using 'file!()' and 'line!()'
inside (which doctests override as needed), which allows to remove
the 'file' helper and 'CONFIG_RUSTC_HAS_SPAN_FILE'.
- Trim the function names in doctests generated by 'rustdoc' < 1.95.0
when building with 'O=', which were not reproducible.
- Fix the 'VM_MAYSHARE' value in the generated bindings and its
blocklist entry, due to typos.
- Build 'core' with '--cfg no_io_statics' to ensure 'core' does not
introduce any use of 'core::sync::atomic' into the kernel image
since upstream Rust is moving 'std::io::Error' into 'core', which
uses a global atomic pointer.
Upstream Rust merged a PR to add a test checking that builds of
'core' are warning-free with that 'cfg' enabled.
- Enable the unstable 'proc_macro_span' feature in 'proc-macro2',
which provides 'Span::join' and thus improves the quality of the
diagnostics of all our procedural macros, notably 'pin-init'. This
is only used for producing diagnostics, thus there is no hard
reliance on the feature.
- Globally allow 'clippy::comparison_chain', since its suggestions are
not always ideal and upstream downgraded it to 'pedantic' too.
'kernel' crate:
- New 'mem' module: add the 'Align<N>' zero-sized type so that
alignment can be specified via const generics ('repr(align(...))'
only works with integer literals), e.g.:
const N: usize = 128;
struct S {
_align: Align<N>,
}
assert_eq!(align_of::<S>(), N);
- New 'ratelimit' module: add the 'Ratelimit' abstraction for 'struct
ratelimit_state' and, based on it, the 'pr_*_ratelimited!' printing
macros, which can be used for printing that may be triggered by
userspace.
In addition, convert Rust Binder to use them.
- 'sync' module: to construct a global 'struct ratelimit_state', add a
'const' constructor for 'raw_spinlock_t'.
In addition, move the lockdep types into a new 'sync::lockdep'
submodule, since there were starting to be too many of them.
- 'num' module: add the 'cv!' macro to create constant values ("cv")
from an integer constant expression, with validity checked at
compile time, inferring the target type from the context. It works
for any type that implements the new 'FromConst' trait, e.g.:
let a: Alignment = cv!(4096);
let b: Bounded<u32, 4> = cv!(15);
// Any integer constant expression works, not only literals.
let m: NonZero<usize> = cv!(usize::MAX);
// Checked narrowing, including in `const` items.
const SMALL: u8 = cv!(200u32);
// The target type can be given explicitly.
let e = cv!(200u32 => u8);
// With an explicit primitive target, the expression can use
// generic parameters.
const fn as_u64<const KEY: u16>() -> u64 {
cv!(KEY => u64)
}
This avoids the verbose turbofish syntax which disincentivized using
these types at interface boundaries (e.g. 'Alignment::new::<8>()').
- 'alloc' module:
- Allow different error types in 'KBox::pin_slice()', enabling use
of infallible initializers.
- Add 'NumaNode::id()' accessor to retrieve the underlying NUMA
node identifier.
- 'time' module:
- Add 'Delta::to_jiffies_timeout()' for use in timeout arguments.
- Add 'Delta::as_jiffies_unsigned()'.
- Make 'Delta::ZERO' generic over the time unit.
- Warn and assert when passing out-of-range inputs to 'fsleep' and
'udelay'.
- Rename 'ClockSource' to 'ClockId' to better align with naming
conventions in C kernel.
- Make 'CONFIG_HZ' value available as 'bindings::HZ'.
- Add implementation detail documentation for 'HrTimer'.
- 'bitmap' module:
- Add contiguous area operations ('next_zero_area{,_off}', 'set'
and 'clear'), with extra checks compared to the underlying C
code, plus additional ones under 'CONFIG_RUST_BITMAP_HARDENED'.
It includes tests demonstrating the edge cases.
- Restrict bitmap length to at most 'i32::MAX', matching
'BitmapVec::MAX_LEN' and simplifying a few things. This also
fixes 'u32' casts truncating in 'copy_and_extend', which could
otherwise lead to OOB writes.
- 'bug' module:
- Fix 'warn_on!' on UML which called 'warn_slowpath_fmt()' with
the wrong arguments; and fix its '// SAFETY:' comment too.
- Add a KUnit test for 'warn_on!'.
- 'id_pool' module: add contiguous ID reservation via the new
'reserve_ids' and 'release_ids' methods, built on top of the new
bitmap area operations.
- 'sizes' module: add the sub-1K size constants ('SZ_1' to 'SZ_512')
and implement 'SizeConstants' for 'Alignment', so that one can write
e.g. 'Alignment::SZ_8'.
'macros' crate:
- Add '#[optional]' attribute for optional methods in '#[vtable]' to
replace the 'build_error!(VTABLE_DEFAULT_ERROR)' boilerplate, e.g.:
#[vtable]
pub trait Operations: Sized {
#[optional]
fn f(&self) -> Result;
}
In addition, apply it to miscdevice and hide generated 'HAS_'
constants for required methods.
- Allow non-ASCII characters in the 'authors' field of the 'module!'
macro, which was unintentionally restricted when multiple authors
support was introduced.
'pin-init' crate:
[ Extra context from Gary's pull request:
"This is a cycle packed with feature updates. Two of the most
anticipated features, tuple struct support and safe self
reference creation, has been included in this pull request.
Safe self reference is a big one and is pushed a bit late in the
cycle. The initial plan was to include a minimum subset for this
cycle because I was worried about potential soundness issues;
however during Plumbers it was agreed that the features should be
upstreamed at once. This is because the initial users (Nova,
JobQueue) would all need the advanced features, so it is better
to ensure that the feature get put into use for real, and it can
iterate with users, rather than being fully designed on paper.
The existing safety checks are already very comprehensive, and
Benno and I are confident that if new ones are discovered, it
wouldn't affect the overall design.
That said, the the usage of the advanced features (invariance,
existential lifetime) shall be limited to the pre-agreed users
only, so even in case where the feature needs to be reworked, the
blast radius is limited.
Another theme in this cycle is to improve the developer
experience when things are used wrongly. A lot of work has been
done to use proper spans from user-provided tokens so error
message point to things that cause them. Many common misuse
scenarios also gain additional custom diagnostics." ]
- User visible changes:
- Support tuple structs.
- Allow safe creation of self references.
- Vastly improve diagnostics for common misuse scenarios.
- Other changes:
- Use 'mixed_site' hygiene consistently.
'MAINTAINERS':
- Add 'RUST [BUG]' entry for the Rust 'bug' module (i.e. 'warn_on!'),
which will be maintained by FUJITA Tomonori -- thank you!
- Add Alice Ryhl as co-maintainer for 'Rust [ALLOC]'.
And some other fixes, cleanups and improvements.
for you to fetch changes up to b99b7f60c5b473d374c68b53753153b4aa9e0702: Scheduler updates: Kconfig updates: - Simplify PREEMPT_DYNAMIC (Mark Rutland) Fair scheduler updates: - Remove redundant RUN_TO_PARITY check (Elif Topuz) - Declare augmented callbacks per field, fix rb_add_augmented_cached() descent (Yiwei Lin, Peter Zijlstra) - Restart fair hrtick after same-task repicks (Shubhang Kaushik) - Improve the scheduling latency of short slice tasks (Vincent Guittot) Deadline/RT scheduler updates: - Check start_dl_timer expiry with ktime_before() (Liang Hao) - irq_work: CPU-hotplug improvements on PREEMPT_RT (Sebastian Andrzej Siewior) Energy-aware scheduling updates: - Implement the steal_governor, introduce preferred CPUs and steal-driven vCPU backoff (Shrikanth Hegde) Multi-processor load-balancing updates: - Enable preferred SMT siblings on NVIDIA Olympus (Andrea Righi) - Randomize equally shallow idle CPU picks (Christian Loehle) - Remove redundant core_sched_seq (Hui Su) Cache-aware scheduling updates: - Avoid publishing partial LLC utilization (Jemmy Wong) NUMA-balancing updates: - Reset NUMA fault locality after scan period update (Eric Kim) Proxy execution updates: - Ongoing work to implement sleeping owner handling for proxy execution (John Stultz, Vasily Gorbik) - Preparatory steps to make sched_ext compatible with proxy execution (Andrea Righi) Scheduler infrastructure updates & fixes: - Remove the RCU wait from PSI trigger destruction (Shakeel Butt) - Avoid modifying wait-entry on failed priority registration (Hui Su) - Use the new static key API for sched_feat (Hongyan Xia) - Convert paravirt_steal to new static key APIs (Hongyan Xia) - cputime: Don't account idle time twice after dyntick-idle (Stian Halseth) Scheduler debugging updates: - Set TIF_NEED_RESCHED before calling __trace_set_need_resched() (Sechang Lim) - Fix context analysis errors in non-preferred CPU push (Shrikanth Hegde) Misc cleanups and fixes by Christian Loehle, Shubhang Kaushik, Thomas Huth and Vladimir Zapolskiy. Thanks, Ingo
for you to fetch changes up to f5a78ecccd98a04c47cea1cd63c2a2fdce8a4b48: Perf events updates: - Support SIMD/eGPRs/SSP register sampling in perf (Dapeng Mi, Kan Liang) - Turn amd_uncore_ctx events into a flexible array (Rosen Penev) - Finish the work related to fixing the guest PEBS path to not set unwanted PERF_GLOBAL_CTRL bits, for which urgent fixes are upstream already (Sean Christopherson) - Drop redundant counter slot searches in the AMD uncore driver (Usama Arif) - Don't WARN when the ext_regs_buf allocation fails (vineash) - Annotate x86_pmu::hybrid_pmu with __counted_by_ptr (Thorsten Blum) Thanks, Ingo
for you to fetch changes up to 67e0eadd862616cb22145d6117b79b79c4ae48fe:
Locking updates:
- In the refcount checking code, BUG() on UAF related errors if
CONFIG_BUG_ON_DATA_CORRUPTION=y (Jann Horn)
- Add {over,under}flow detection for local_interrupt_{enable,disable}()
(Boqun Feng)
- Add kunit test case for max local_interrupt_disable() nesting level
(Boqun Feng)
- Clarify comment (Boqun Feng)
Thanks,
Ingo
for you to fetch changes up to 945537271df1e3680be9b32af7041ac20f1184fb: Objtool updates: - Add unit test suite for objtool klp functionality and known failure modes (by Song Liu and Puranjay Mohan, with fixes by Joe Lawrence) Thanks, Ingo
please pull the nolibc updates for 7.4.
There are two irregularities to note:
If you pull the x32 disabling patches[0] in this cycle there will be a merge
conflict in tools/testing/selftests/nolibc/run-tests.sh.
Pick the version from the nolibc tree and drop the x32 part of the conditional.
The latest commit in the PR 700ce4da6f6f ("selftests/nolibc: explicitly disable
position independent executables") is very new and was not in -next yet. It
fixes a new compiler compatibility issue I only noticed when preparing this PR.
The real nolibc selftests are not driven by the kselftests framework, but by ours
own run-tests.sh. So this commit does not affect any nolibc users and kselftest
user like -next only through our pro-forma, limited kselftests integration.
[0] https://lore.kernel.org/lkml/[email protected]/
Thomas
nolibc changes for v7.4
Changes:
* New architectures: Hexagon, 64-bit parisc
* New library functionality: sendfile(), pread(), pwrite()
* Various bugfixes and cleanups
full details available in the signed tag.
You will see an immediate conflict in init/Kconfig between
eb13a1ff271b ("random: vDSO: avoid call to memset() when zeroing reserved parameter")
that went into 7.3-rc6 and
f85147b291e3 ("kbuild: move the toolchain checks into scripts/Kconfig.toolchain")
in my tree. The solution in init/Kconfig should be obvious but make sure
to reapply eb13a1ff271b in scripts/Kconfig.toolchain, which I have been
doing in -next easily with:
$ git show eb13a1ff271b init/Kconfig | sed 's;init/Kconfig;scripts/Kconfig.toolchain;g' | git apply -3v
My latest merge is at
for reference if necessary.
There are a few other conflicts that I have been notified about in
-next, which all appear to be minor.
- Makefile from the rust tree:
https://lore.kernel.org/[email protected]/
- drivers/firmware/efi/libstub/Makefile from the efi tree:
https://lore.kernel.org/[email protected]/
- scripts/kallsyms.c from the -mm tree:
https://lore.kernel.org/[email protected]/
- scripts/remove-stale-files from the rust tree:
https://lore.kernel.org/[email protected]/
If there are any issues or concerns, please let me know.
Cheers,
Nathan
Kbuild / Kconfig updates for 7.4
Kbuild:
- Suppress compiler flags in debug info for external module builds
- Use '-fmacro-prefix-map' in more places in the build
- Merge initial set of changes from Lorenzo's speed up series, along
with some fixes found through testing
- Avoid allocating .modinfo in vmlinux
- Speed up kallsyms by indexing symbols by token and outputting binary
data to disk directly then including in assembly via .incbin
- Don't sort $(NM) output when unnecessary
- Only emit relocations on the final vmlinx link
- Reimplement mksysmap in C
- Move many cc-option and ld-option calls into the Kconfig stage to
cache their results
- Use pigz for gzip compression when available
- Move gen_init_cpio and gen_initramfs.sh from usr/ to scripts/
- Add a TOML configuration to scripts/container and update documentation
accordingly
- Add a generic, opt-in mechanism for checking that headers can compile
standalone
- Update machine function splitting argument for LLVM 24 rename in
AutoFDO build
- Miscellaneous minor clean ups, fixes, and hardening, mostly
found/fixed via LLMs
Kconfig:
- Turn recursive ranges into an error
- Fix savedefconfig for defaults that were adjusted for being out of
range and revert a previously applied workaround
- Improvements and hardening around integer and hexadecimal values
- Emit a warning when selecting or implying a choice symbol, which has no
effect
- Emit a warning when KCONFIG_PROBABILITY is malformed
- Introduce def_string / def_int / def_hex to mirror the existing
def_bool / def_tristate to succinctly set a value and type at the same
time.
- Add cc-option-str and ld-option-str macros to act like Kbuild's
cc-option and ld-option, returning the string when the option is
supported, allowing many checks to be moved into Kconfig
- Minor usability improvements to Kconfig tests
Signed-off-by: Nathan Chancellor <[email protected]>
Once the merge window opens, please pull this RCU update: RCU updates: Execution contexts and call_rcu() and call_srcu(): * Make call_rcu() and call_srcu invocable from NMI handlers and while holding scheduler locks (using irq-work handlers). * Add rcutorture and BPF tests calling these functions from these contexts. * Disable rcutorture overload testing for RCU readers that are "fragile", that is, that do not either disable preemption or have some form of RCU priority boosting. SRCU updates: * Add an atomic SRCU where readers run with preemption disabled and grace periods can be invoked from atomic contexts. David Woodhouse has a patch series exploiting this for GPC. * Add torture and lockdep tests for atomic SRCU. * Add numerous optimizations for atomic SRCU based on the fact that it does not have callbacks, for example, eliminating any transition to "big" srcu_struct structures even on systems that configure these to happen at initialization time. Additional torture-test updates: * Fix a divide-by-zero bug in forward-progress testing. * Synchronously wait for all IRQ-queued callbacks to complete. * Allow alternative "ssh" commands to be specified for use by kvm-remote.sh. * Fix kvm-again.sh re-run failure on PowerPC. * Add additional lockdep testing for atomic SRCU. * Fix error double-counting in srcu_lockdep.sh. * Add atomic SRCU cross-CPU IRQ context mismatch testing, with the * trick being that the atomic SRCU readers context must be at least as strict as that of the atomic SRCU grace-period wait. So for example, if the readers have IRQs disabled, so must the grace-period wait. Miscellaneous updates: * Update stallwarn.rst documentation for the re-implementation of RCU Tasks Trace in terms of SRCU. * Fix the lazy-callback shrink scanner budget computation so that it honors the reclaim budget. * Avoid panicking on RCU CPU stalls that end before the warning can be printed. * Add "running" and "boosted" indications to the RCU task stall warning output. * People have been (incorrectly) relying on rcu_barrier() to wait for kfree_rcu() callbacks and processing. But it turns out to be easier to fix rcu_barrier() to meet their expectations than to fix their code to live within the earlier rcu_barrier() specification. So rcu_barrier() now waits on kfree_rcu() callbacks and processing. * Disable RCU Tasks console output that track when this RCU flavor switches between per-CPU and global callback queuing. New use cases appeared that generated enough console traffic to cause trouble, and no one seemed to care about these messages. For those needing those messages, there is a new rcupdate.rcu_task_collapse_debug kernel boot parameter. * Fix __rcu pointer attribute handling to eliminate false positives. * Fix typos and drop redundant #include directives.
All commits have been in linux-next (no conflicts expected); two signed tag=
s for
Rust I/O and DMA changes have been shared with other trees.
Thanks,
Danilo
Driver core changes for 7.4-rc1
- core:
- Add TAINT_FORCED_BIND to taint the kernel and driver module before manu=
al
sysfs bind/unbind operations; make add_taint_module() available to
driver core and update taint decoding tools and documentation
- Constify device_show/store_*() attribute parameters and adapt x86 MCE a=
nd
perf users to prepare for const dev_ext_attribute instances
- Fix UAF in NUMA access node registration failure handling by dropping
the device reference with put_device() instead of directly freeing the =
node
- debugfs:
- Make debugfs_create_str() read-only to eliminate double-free races betw=
een
concurrent writers; reject writable modes; convert interconnect and
SoundWire users to local file operations with mutex-protected strings
- kobject:
- Fix out-of-bounds access in kobject_action_type() when parsing action
strings containing embedded NUL bytes
- Fix the kobject_set_name() reference in kset_register() kernel-doc
- Rust:
- DMA:
- Tie Coherent, CoherentBox and CoherentHandle to the device's bound
lifetime to prevent retaining DMA allocations beyond driver unbind;
propagate the lifetime through nova-core and the DMA sample driver
- I/O:
- Require explicit base types for registers and replace relative regist=
ers
with typed subregion projections; reimplement register!() as a proc
macro, support registers using existing types without inline bitfield=
s,
and convert nova-core, Tyr and the PCI sample; add AsRepr/AsReprMut a=
nd
transmute helpers with deferred size checks for representation
conversions
- Wrap ResourceSize in a transparent newtype with explicit conversions,
including checked conversion to usize
- PCI:
- Add typed PCIe extended capability lookup and SR-IOV accessors for th=
e
First VF Offset and decoded VF BAR addresses and widths, keeping raw
SR-IOV registers private to preserve PCI core ownership of their stat=
e
- scatterlist:
- Honor the device's maximum segment size as well as the DMA mapping li=
mit
when constructing SG tables
- Return u32 from SGEntry::dma_len() to match the C segment length type
- misc:
- Validate auxiliary DeviceId name length explicitly to improve
compile-time diagnostics for oversized device ID table entries
- Drop unnecessary 'static bounds from debugfs ScopedDir file creation
methods to support data containing non-'static references, including =
DMA
buffers
- misc:
- Add Johan Hovold as driver core maintainer
- Simplify platform_device_alloc() by returning early on allocation failu=
re
- Fix typos in driver core and kernfs comments
When the v7.4 merge window opens, please pull this CSD-lock update that reports the time required to recover from a CSD-lock stall: Report CSD-lock stall recovery time * Refactor to simplify csd_lock_wait_toolong() function prototype. * Report time required to recover from a CSD-lock stall. * Add a test of this reporting.
When the v7.4 merge window opens, please pull this two-byte cmpxchg emulation: Add emulation of two-byte cmpxchg() These commits add a cmpxchg_emu_u16() function that emulates two-byte cmpxchg() in terms of four-byte cmpxchg() for architectures not having native instructions for this purpose. They also make use of this cmpxchg_emu_u16() function in those architectures, namely sh, arc, csky, and xtensa. This permits use of two-byte cmpxchg() in common code. However, it sadly does not permit easy implementation of all algorithms needing on two-byte atomic operations because there are some systems still supported by Linux that do not have native two-byte store instructions. There is reason to believe that these systems will soon no longer be supported by Linux.
cleanups, a number of fixes (crashes, out-of-bounds reads and data-integrity bugs), support for changing SMB compression through chattr and internal CIFS version removal. This conflicts with the vfs tree in fs/smb/client (mnt_idmap constification, fscache_resize_cookie() and transport.c). The resolution is trivial and linux-next has been carrying it for a while. Thanks, Paulo - Implement ->fileattr_set so chattr(1) compression changes (chattr +c/-c) go through the generic VFS fileattr path and its permission and serialization checks instead of the raw FS_IOC_SETFLAGS fallback and remove the now-unreachable file flags ioctl handlers - Require stable pages when the connection is signed or SMB compression is enabled, so a buffered write can no longer modify a folio that is still in flight and corrupt its signature (surfaced as -EIO) or, with compression, silently corrupt the data stored on the server - Stop breaking a file's just-granted lease while probing it for a Minshall+French symlink, by reusing an already open handle or opening with the inode's lease key - Fix several out-of-bounds reads and use-after-free bug in SMB1 - Fix an use-after-free bug in cifs_ses_add_channel() - Fix a NULL pointer dereference in the demultiplex thread when an encrypted read response matches no outstanding request and reclaim the credits granted on such responses to avoid starving the connection of credits - Fail sends fast when the connection needs to reconnect - Drop the redundant nls_table argument threaded through the session setup, tree connect and path-based call paths, allocate the session setup state on the stack and remove the internal CIFS version number along with a batch of write-only fields and commented-out code
Bruno Produit has fixed issue in {hfs,hfsplus}_btree_close()
method. B-tree nodes with a zero reference count remain in
the node hash until folio reclaim or tree teardown frees them.
The folio release callbacks remove nodes while holding hash_lock,
but hfs_btree_close() walks and frees the same hash without
that lock. Reclaim can therefore unhash and free a node after
close has loaded its pointer, causing a use-after-free or
double-free. Detach each node with hfs_bnode_unhash() while
holding hash_lock before inspecting and freeing it.
Drop the lock before hfs_bnode_free() so a large tree is not
freed while holding a spinlock.
Davy Felipe has fixed issues in hfs_inode_setattr() and
hfs_brec_insert():
- hfs_inode_setattr() rejects unsupported UID, GID and mode
changes, but returns the value stored in error when
the filesystem is not mounted with the quiet option.
At this point error is zero, as execution has already passed a
successful setattr_prepare() call. As a result, unsupported attribute
changes are incorrectly reported to userspace as successful even
though the inode remains unchanged. Return -EPERM for these
operations while preserving the existing behavior for quiet mounts.
- hfs_brec_insert() may fail while inserting a new extent record, but
__hfs_ext_write_extent() currently ignores its return value and
clears HFS_FLG_EXT_DIRTY and HFS_FLG_EXT_NEW as if the insertion had
succeeded. Use a reusable B-tree node range helper that takes
the find data and the expected record size. The helper validates
the bnode and tree pointers, entry offset and entry length, and
ensures that the write range fits within the node.
Viacheslav Dubeyko has fixed the failure in xfstests generic/339
case. The xfstests generic/339 leaves an HFS+ volume corrupted and,
as a result, fsck.hfsplus reports a long run of "Illegal name".
The root cause is that fs/hfsplus/unicode.c's decomposition table
(Apple Technote #1150) decomposes each source character entirely on
its own and never does anything further with the result. Real fsck_hfs
has carried a permanent "FixDecomps" fixup in CatalogCheck.c for
exactly what that leaves unhandled. Fix makes hfsplus store, hash and
compare names the same way current macOS does.
hfs/hfsplus updates for v7.4
- hfs: handle extent B-tree write errors
- hfsplus: add KUnit coverage for canonical reordering and legacy
fixups
- hfsplus: canonicalize decomposed catalog names like fsck_hfs expects
- hfsplus: add Unicode combining-class and legacy decomposition data
- hfs/hfsplus: serialize B-tree close against folio release
- hfs: return -EPERM for unsupported setattr changes
Aldo Ariel Panzardo has fixed the issues in nilfs_sufile_get_suinfo(), nilfs_scan_dsync_log(), and nilfs_find_or_create_root(): - If the requested segment number is greater than the total number of segments, the function may process segment numbers outside the filesystem. - nilfs_scan_dsync_log() trusts the block counts in each on-disk file information entry. If fi_ndatablk is greater than fi_nblocks, the data block loop can consume excessive summary entries and the later subtraction used to derive the number of node blocks underflows. - nilfs_find_or_create_root() links a new checkpoint root into the checkpoint tree and drops ns_cptree_lock before creating the root's sysfs group. If nilfs_sysfs_create_snapshot_group() then fails, the root is freed while it is still reachable from ns_cptree, so a concurrent nilfs_lookup_root() can dereference freed memory. Hemanth Selam has fixed typos in comments, reported by scripts/checkpatch.pl using the misspelling list in scripts/spelling.txt. Jake Labelle has fixed issues in nilfs_recover_dsync_blocks() and nilfs_readdir(): - During roll-forward recovery, nilfs_recover_dsync_blocks() obtains the inode designated by fi_ino of a dsync log without checking its type. Regular files, directories, and symlinks are the only inode types with data blocks to recover; reject anything else before touching its block mapping. - nilfs_readdir() uses ctx->pos, which userspace can set to an arbitrary value via llseek, as an offset into the directory folio and parses whatever bytes sit there as a directory entry. Snap unaligned positions onto a valid entry boundary by walking the rec_len chain from the chunk start before parsing. Jiaming Zhang has fixed the issue in logic of clearing the dirty folios. When garbage collection fails, nilfs2 rolls the DAT metadata file's page cache back to a shadow copy taken before GC started. nilfs_clear_dirty_pages() drops the dirty state of the folios in the DAT cache, then nilfs_copy_back_pages() overwrites them with the saved contents and warns if one is still dirty. Add a force flag to nilfs_clear_dirty_pages() and nilfs_clear_folio_dirty() that skips the busy buffer check, and set it in the two calls from nilfs_mdt_restore_from_shadow_map(). Joshua Crofts has removed dead code and commented code sections in nilfs_new_inode(), nilfs_read_inode_common(), and nilfs_setup_super(). Ryusuke Konishi has fixed multiple issues: - While the recent out-of-bounds memory access issue in nilfs_direct_propagate() has already been fixed, adds extra checks to catch and gracefully handle similar potential bugs. - Fix syzbot reported deadlock between nilfs_evict_inode() and find_inode() by removing the synchronous log writer trigger from nilfs_evict_inode(). - Fix an omitted clear of the dirty flag on backing device buffers, which could cause an abnormal buffer state and potential block overwriting data corruption. - Improve stability by preventing errors caused by user interrupts while waiting for log writes, which are triggered by synchronous write flags following operations such as rename(). - Refactor the metadata file writeback callback function, restructuring an inefficient legacy function organization rooted in the era of aops->writepage() to align with aops->writepages(). - Fix a link count underflow during rmdir on a directory with a corrupted link count (an issue recently reported by syzbot). Viacheslav Dubeyko implemented the elimination of blockdev_direct_IO() from nilfs2 entirely. It adds iomap.h with declaration of iomaps operations and iomap.c with implementation of nilfs_iomap_begin(). The nilfs_direct_IO() and the .direct_IO callback on nilfs_aops are removed. The nilfs_file_read_iter() dispatches O_DIRECT reads to iomap_dio_rw() using nilfs_iomap_ops. Everything else still goes through generic_file_read_iter(). nilfs2 updates for v7.4 - nilfs2: validate directory position after llseek in readdir - nilfs2: reject non-regular inodes in dsync recovery - nilfs2: fix link count underflow when removing corrupted directory - nilfs2: simplify nilfs_mdt_writeback() - nilfs2: ignore non-fatal signals during synchronous log write wait - nilfs2: clear dirty flag on bdev buffers on log write failure - nilfs2: fix deadlock between nilfs_evict_inode() and find_inode() - nilfs2: fix checkpoint root lifetime on sysfs errors - nilfs2: switch O_DIRECT to iomap based operations - nilfs2: add iomap operations for direct I/O - nilfs2: validate file block counts during recovery - nilfs2: force clear dirty state when restoring from the shadow map - nilfs2: validate segment number in nilfs_sufile_get_suinfo() - nilfs2: fix typos in comments - nilfs2: remove '#if 0' code blocks - nilfs2: strengthen consistency checks in nilfs_direct_propagate()
please pull s390 updates for the 7.4 merge window.
Thanks,
Heiko
s390 updates for 7.4 merge window
- Add support for sclp-vt220 terminal resize events e.g. for QEMU
- Warn if kernel command line contains non-printable EBCDIC
characters
- Improve show_code() disassembly output by using reliable markers for
the instruction address and faulting instruction
- Rework exception handling to require only a single exception table
entry per faulting instruction: convert all inline assemblies from
EX_TABLE to the new EX_TABLE_INSN macros. The previous exception
handling was error prone since it usually required two EX_TABLE
entries: one pointing at the instruction, and one pointing behind it
- Disallow kprobes on instructions with exception table entries to avoid
exception handlers decoding a breakpoint instead of the original
instruction
- Preemptible percpu ops changes:
- Simplify percpu_entry() and percpu_exit() by encoding the percpu
base, offset, and pointer registers into the lowcore marker, allowing
percpu_exit() to update the percpu pointer on CPU migration without
comparing the interrupted instruction
- Convert this_cpu_cmpxchg(), this_cpu_xchg(), and
this_cpu_cmpxchg128() to preemptible percpu ops; provide
this_cpu_try_cmpxchg()
- Emulate virtual timer in appldata via delayed work and remove the
s390 specific vtimer infrastructure
- Add lock contention tracepoints to rwlock slowpath
- Fix incorrect return address in signal frame setup
- Fix cpum_cf CPU hotplug handling
- Convert various __get_free_pages() / get_zeroed_page() users to
kmalloc() / kzalloc()
- PCI:
- Improve RPCIT instruction tracing
- Fix double-free, use-after-free, and resource leaks in zPCI MSI
and IRQ setup / cleanup paths
- Crypto and zcrypt:
- Improve reply message and length verification checks for CCA,
EP11, and ICA messages to prevent out-of-bounds reads
- Add missing array_index_nospec() for domain index uses in zcrypt to
prevent speculative execution bypass
- Fix out-of-bounds read in cca_query_crypto_facility()
- Various other small fixes and improvements
Please consider pulling these configfs updates for 7.4-rc1. There are three parts: Thomas Weißschuh's series that allows const configfs attribute structures, new selftests for the userspace interface, and three Rust binding changes that I merged from Andreas Hindborg's signed tag. FWIW: The const series touches three drivers outside fs/configfs (acpi, xe, coco/guest report) because they implement the callbacks and bin attributes whose types change. Thanks, --breno configfs: Updates for v7.4 - Attribute structures can now be const. From Thomas Weißschuh. - The first selftests for the configfs userspace interface, plus a sample subsystem that accepts symlinks to test against. They include a race of symlink(2) against rmdir of the target, which exercises the use-after-free fixed in v7.3-rc3. - Rust bindings, merged from Andreas Hindborg's signed tag: fix the data offset calculation in subsystem callbacks (marked for stable), add the missing Send and Sync bounds, and correct a safety comment.
Here are the arm64 updates for 7.4. The more interesting bits are the removal of big-endian kernel support (already marked BROKEN for some time), preemptible this_cpu_*() operations and MPAM support for the firmware-backed (Fb) interface. CCA (Arm's confidential compute) is slowly trickling in with host RMI (Realm Management Interface) support and some refactoring, including a dedicated SMCCC bus to advertise firmware services. There are also the usual PMU updates for new hardware and a few fixes/cleanups. More details in the tag. I think there are some simple merge conflicts, depending on the order you pull trees (KVM, mm), but the -next resolution is correct. Thanks. Core features: - Remove big-endian kernel support: CONFIG_CPU_BIG_ENDIAN has depended on BROKEN for a while, so drop the remaining code (BE hypervisor object, BPF JIT, assembly/crypto/library routines, endianness helper macros, selftests) and force a little-endian build - Add preemptible this_cpu_*() operations (read/write, RMW, xchg, cmpxchg and cmpxchg128) that no longer need to disable preemption around the per-CPU address generation and access - Preparation patches for implementing CONFIG_HOTPLUG_PARALLEL on arm64 Memory management: - Treat faults taken by EFI runtime firmware as kernel faults - Clear PTE_WRITE for EFI_MEMORY_RO mappings (with hardware dirty state management enabled, this is not truly read-only) - Raise the default ARCH_MMAP_RND_BITS for 48-bit and 52-bit VA configurations (28/26/24 bits for 4K/16K/64K pages) - Implement clear_page[s]() using memset() - Enable BBML2 no-abort (a.k.a. BBML3) for the NVIDIA Rigel CPU Perf and PMU: - Support for HiSilicon's ITS PMU - Add support for some new events: INST_SIMD_ALU_VEC for Apple PMUs and a cycle counter for the latest version of HiSilicon's MN PMU hardware - A bunch of fixes to the CXL PMU driver to address pre-existing issues from Sashiko - Fix generation of PERF_RECORD_ITRACE_START records for SPE and ETM drivers - Reduce excessive stack consumption in the Marvell DDR PMU driver - Minor driver updates and cleanups all over Arm Confidential Compute Architecture (CCA): - Add an Arm SMCCC bus for firmware services discovered through SMCCC and move the TRNG and CCA guest (TSM provider) drivers onto it, removing the dummy CCA platform device and adding a sysfs ABI for Realm guests - Move the Realm Service Interface (RSI) code out of arch/arm64/ into drivers/firmware/arm_rmm/ - Add the host side of the Realm Management Interface (RMI): detect, configure and activate the RMM, add SRO support and wrappers for the Realm RMI commands - Block hibernation (new arch hook in the PM core) and kexec while the RMM is active. To be revisited in the future with proper support for deactivation - Handle Granule Protection Faults (GPFs) taken by the host, caused by accesses to memory delegated to the RMM. In a future patch, the exception table lookup will be limited to is_kdump_kernel() cases MPAM (Memory Partitioning And Monitoring): - Add support for the MPAM firmware-backed (Fb) interface, allowing MSC accesses to be mediated by firmware - Fix a list of theoretical issues with the driver (MSC access error propagation, MBWU monitor save/restore and locking, resctrl class handling, error interrupt restore, maximum number of PARTIDs) - Add the mailing list and a missing file to the MAINTAINERS entry - Document when to set arm64.nompam Errata and CPU features: - Add the NXP i.MX8QM/8QP workaround for the Cortex-A53 cache coherency issue (ERR050104), using a new ARM64_CPUCAP_SOC_ERRATUM capability type for SoC-level errata Miscellaneous: - Mask debug exceptions (DAIF) around the hardware breakpoint register manipulations when called from generic kernel code - Don't zero the SVE state buffer when the SVE state is live - Return -EPERM instead of -EBUSY from the GCS prctl() locking failures (matching x86), with the selftest updated. Slight ABI change but no software deployment yet - kselftest: fix unsound MTE fault skipping by introducing MTE-safe memory accessors, avoid copying each signal test binary more than once - Update sysreg definitions (fix three enum values and two field names, mark architecturally dropped fields as RES0) and remove the TME transaction state check from the BRBE driver - Fix the description of ARM64_HAS_LPA2 and remove a redundant ID_AA64MMFR0 define
This is the batch of pull requests for the v7.4 merge window. So I took the insane decision to follow-up LPC with a vacation and now I'm creating PRs next to a pool. So fsck me for great timing. This should hopefully explain why there's some delay in response time. The other half is that I'm getting carpet bombed with subtle bugs and I'm trying to fix them systematically. While LLMs are great at finding sh*t they certainly do still suck at coming up with architecturally clean fixes. 90% of the proposed "fixes" are utter garbage. Anyway, on to the content: This cycle is heavier on uapi than the last two. close_range() grows two flags, the coredump socket protocol learns records, sparse dumps and per-request memory type selection, open_tree() gets a flag that container runtimes need and af_unix sockets can hand out thread specific pidfds. The rest is the exit, exec and coredump paths getting a lot of attention, kernfs scalability work out of Meta's fleet and a few treewide conversions. Closing files is synchronous now for close_range(), exec and exit. Every final __fput() of an exiting task used to be queued on task work and run from exit_task_work(). For a large descriptor table that is a cmpxchg() and a TIF_NOTIFY_RESUME test-and-set per file and then a second pass over every struct file that isn't cache hot anymore. close_files(), close_range() and close-on-exec flush and put each file inline the way close(2) does. Tearing down 1M descriptors goes from 429 to 306 ms on exit and from 471 to 325 ms on execve(). That is a 16-21% win or 40-150 ns per closed file. The spufs coredump support, the only reason do_coredump() unshared the descriptor table, goes away as part of this. close_range() gets CLOSE_RANGE_EXCEPT which makes it operate on all file descriptors outside of the range and CLOSE_RANGE_CLOEXEC_ONLY which closes only the close-on-exec descriptors in it. Together they let a task between clone(CLONE_FILES) and execve() shed everything except for a window of descriptors in one call and nothing outside of the window is ever referenced by the child. The coredump socket protocol learns to send a coredump as records. A server raising COREDUMP_RECORDS gets a header in front of every chunk and an explicit end record. With COREDUMP_SPARSE holes cross the socket as a bare header saying how many zero bytes were skipped. A process with 128 threads sends 1424153 bytes for a coredump of 1075150848 bytes since all the thread stacks are 8 MB reservations that are nearly all holes. COREDUMP_MEMORY_TYPES lets the server pick what memory to dump per request instead of relying on the static coredump_filter of the crashing task. TIF_NOTIFY_SIGNAL can no longer interrupt work that can't be restarted. It is used to kick a task out of an uninterruptible sleep to run task work but the pipe and socket paths a coredump goes through check signal_pending() deep down and bail. So a crashing process with io_uring requests in flight lost most of its coredump. PF_NO_NOTIFY_SIGNAL sections modelled on memalloc_nofs_save() fix that for coredumps, the smb send path and the pid namespace reaper. Looking at the coredump code with kres and TLA+ also turned up a UAF when releasing parked threads, shared signals retargeted to the dumper that truncated cores, io-wq workers that could join a thread group a coredump was already tearing down and an SQPOLL deadlock when a user worker ends up as the dumper. kernfs loses most of its kernfs_rwsem contention. The semaphore is per kernfs root so sysfs and cgroupfs each have one for the whole machine and rwsems don't let readers steal the lock once a writer is queued. So one cgroup creation parked every daemon polling cgroup files in uninterruptible sleep for minutes, oomd and below among them. Dentry revalidation runs under rcu now, readdir drops the lock across dir_emit() so a fault into reclaim can't hold it, and notification delivery, open node allocation and renames stop sleeping under it. Read acquisitions under churn drop from 48.6M to 1.3M and path walk throughput improves 35-53%. The buffer_head write completion handlers stop clearing BH_Uptodate when a write fails. The buffer still holds exactly the data the filesystem asked to be written and claiming otherwise made the retry WARN, re-read the stale on-disk copy over the good data and leaked an inconsistent state through the folio lock. Every consumer is moved to BH_Write_EIO. This also let jbd2's shadow buffers point at memory outside the page cache and removed b_page. struct mnt_idmap is const throughout the tree now. A mount's idmapping is immutable after creation so this follows the struct cred model all the way down into every inode operation, the LSM hooks and the filesystems, and nop_mnt_idmap and invalid_mnt_idmap live in rodata. iomap gains lazy bounce buffering for checksummed reads. XFS bounce buffered every direct read on a device requiring stable pages. Now the read goes to the user buffer first and only a checksum failure reads again into a bounce buffer. That branch is shared with the block tree. Neil's preparations for changing directory locking are in. The goal is to lock the dentry rather than the parent directory. d_splice_alias() handles hashed dentries, d_alloc_trylock() and d_duplicate() are added, LOOKUP_SHARED tells ->lookup() how the parent is locked and the in-lookup state is tracked by lockdep. Mateusz also removed a spurious dentry reference cycle on open which is a 39% win in will-it-scale. Cachefiles can now cache files that are written once sequentially without asking the backing filesystem with SEEK_DATA/SEEK_HOLE before every read, and netfslib drops the writethrough code and makes the deprecated PG_private_2 support opt-in. open_tree() gets OPEN_TREE_DROP_MNTNS_MOUNTS. A recursive clone picks up mount namespaces pinned below the source and attaching that inside a namespace created with OPEN_TREE_NAMESPACE fails with ELOOP since the new namespace is younger than everything else. crun hits this on every Ubuntu host because snapd pins mount namespaces under /run/snapd/ns. af_unix sockets return thread specific pidfds via SO_PASSPIDFD_THREAD and SO_PEERPIDFD_THREAD so a coredump server can get a handle on the thread that is actually writing the dump. That branch is shared with net-next. Smaller items include the removal of bfs, binfmt_misc only accepting punctuation as the delimiter of a register string, uid_map and gid_map writes rejecting values that don't fit in a u32 instead of truncating them, __counted_by_ptr annotations with KUnit tests for struct fdtable and struct uid_gid_map, a simplified FD_PREPARE(), get_tree_super() for erofs's shared superblocks, and the usual pile of fixes and selftest work. Thanks! Christian
USB serial updates for 7.4-rc1 Here are the USB serial updates for 7.4-rc1: - fix urb leak on sierra write completion - fix urb leak on usb_wwan disconnect - fix data corruption due to missing mxuport tx throttling - add support for two new classes of mxuport devices - add support for rs485 to mxuport - add new modem device ids - replace the last __get_free_page() with kmalloc() Everything has been in linux-next with no reported issues. The mxuport changes were merged yesterday, but they were contributed by a competent vendor (and passed my smoke test).
Subject: [GIT PULL] pwm: Changes for 7.4-rc1
MIME-Version: 1.0
Hello Linus,
the following changes since commit cee9395acd8043be0644b25c34bfa86623f2b935:
Linux 7.3-rc1 (2026-08-30 13:34:40 -0700)
are available in the Git repository at:
wm/for-7.4-rc1
for you to fetch changes up to 00e917df050d79ac26ec700717680ad6421d2808:
dt-bindings: pwm: Add IPQ5210 binding (2026-10-14 11:33:04 +0200)
for 7.4-rc1.
pwm: Changes for v7.4-rc1
The usual mix of fixes for older issues, devicetree changes and
cleanups.
Part of this is a shared branch that introduces device-managed variants
of atomic_notifier_chain_register() and
blocking_notifier_chain_register().
There are a few more interesting things still in my to-review queue, but
I didn't manage to review these in time to make this PR a bit more
interesting. (Though I guess you like it boring :-)
The series introducing the devm stuff for
{atomic,blocking}_notifier_chain_register() also touched iio, gpio,
platform/x86, input, acpi and kernel/reboot. I didn't check which of
these were picked up, but I guess you'll also get e38b9eda475f
("notifier: add device-managed registration APIs") via a few
more PRs this cycle.
Apart from the top-most patch (which is "only" a trivial device-tree
binding addition) these changes were included in next since
next-20260930 without any hassle.
Have a nice week-end,
Uwe
This cycle is "fun", only the "mmu" and "svm" requests escaped without a conflict or some other notable mess. That said, I don't think there's anything particularly thorny to deal with, just a lot of minor stuff. Details in the individual pull requests. My apologies for not getting the guest_memfd in-place conversion changes sent along sooner. I really wanted to get you a pull request around 7.3-rc4, but we simply could get the code ready in time.
Hi, there's a handful of user visible changes, some of them fixes and the rest is in the core. There are some minor performance improvements too. User visible changes: - remove tweakable sysfs way to enable features, used only for extent-irefs which has been default since 3.12; the sysfs interface makes it complicated due to locking and context, unlike ioctl - change which backup superblock does mount option 'rescue=usebackuproot' choose, skip the last one due to rotation, for more fine grained control add options selecting a specific backup superblock by index (usebackuproot_N) Notable fixes: - syslog message fixup of error state description, duplicate 'E' renamed to 'H' (emergency shutdown), added 'I 'when delayed iputs are blocked - use kvmalloc for b-tree buffer allocations, as we're using more contig ranges because of large folios, the allocations started to warn on fragmented memory - handle unknown commands for the /dev/btrfs-control ioctls - tune timing of transaction commit when the space is getting low - in raid56, skip verifications if data checksums are not available Performance improvements: - reflink speedup, reorder locking and flushing to optimize for more common cases where the reflinked ranges are accessed, avoid unnecessary contention - minor speedup in zstd decompression (+8MB/s) - reduced contention of inode extent map lock, improves e.g. when shrinker processes inodes without extent maps, measured time reduction 10-20% Core changes: - move allocation errors out of some contexts (new inode/dentry/rename) to avoid transaction aborts - allocate system new chunks earlier, e.g. when consumed by fallocate, and tune deleting unused block groups if the system space is low - tree checker: reject extents for special files - many qgroup fixes regarding enabling/disabling, other state changes and qgroup relation updates - error handling fixes - refactoring, cleanups - page to folio cleanups - transaction state macros/enums simplification - parameter simplifications
Please git pull the following tag: xen: branch for v7.4-rc1 This time only small fixes and cleanups all over Xen related drivers. Nothing really stands out here. Thanks. Juergen
LoongArch KVM changes for v7.4 1. Add separate vmid support. 2. Simplify MSI intterupt injection. 3. Add hypercall crash support. 4. Allow to set pv_feature until vCPU run. 5. Enable HW PTW automatically in selftests.
Hi Rafael, - Add the Exynos ACPM thermal driver for Google GS101, along with DT bindings and a MAINTAINERS entry (Tudor Ambarus) - Add Renesas RZ/G3L thermal sensor support and DT bindings, and move default calibration values to per-SoC match data (Biju Das) - Add Qualcomm MSM8952 TSENS support and the corresponding DT binding compatible (Muzaffer Kadir) - Document the Qualcomm PMAU0102 Master BandGap temperature monitor compatible in the DT bindings (Dhruvin Rajpura) - Extend the QCom TSENS v2 trip temperature limits to the hardware range of -204°C to +204°C to prevent interrupt storms when operating beyond the previous software limits (Priyansh Jain) - Fix temperature threshold map indexing in the QCom SPMI temperature alarm driver to prevent out-of-bounds reads (Georgi Djakov) - Describe the additional bus clock required by the Amlogic T7 thermal sensor and switch the driver to the clk_bulk API to manage multiple clocks (Ronald Claveau) - Request the Airoha EN7581 IRQ after thermal zone registration to prevent the interrupt handler from accessing an unregistered or already freed thermal zone (Vitaliy Sochnev) - Fix the Airoha AN7583 ADC mux field mapping, serialize access to the shared ADC, and verify mux selection to avoid invalid temperature readings and spurious critical shutdowns (Vitaliy Sochnev) - Register separate thermal zones for the AN7583 bandgap, GbE and CPU sensors, and update the DT bindings to use one thermal sensor cell to select the sensor (Vitaliy Sochnev) - Fix signed integer overflow in the Renesas RZ/G3E temperature-to-code conversion, preserve compare interrupt state across runtime PM, and prevent overlapping temperature conversions (Ovidiu Panait) - Remove redundant trip window validation and runtime PM pm_runtime_mark_last_busy() calls from the Renesas RZ/G3E driver (Ovidiu Panait) - Propagate reset assertion failures from Renesas RZ/G3E suspend and attempt to restore power if the sensor was active (Pengpeng Hou) - Stop the TI bandgap alert IRQ before removing sensor interfaces and cancel pending alert work to prevent use-after-free on driver removal (Weigang He) - Validate Spreadtrum sensor IDs read from the device tree before using them for register offsets and array indexing (Weigang He) - Convert the TI OMAP bandgap DT bindings to schema and document the DRA752 compatible and thermal sensor cells (Bhargav Joshi) - Use DT property helpers matching the signed temperature and unsigned hysteresis types defined by the thermal zone bindings (Rob Herring) - Reuse common error handling code in the power allocator governor bind callback (Markus Elfring) - Constify the thermal zone device operations in the i.MX9 driver (Christophe JAILLET) - Fix kernel-doc parameter names and firmware node references in the cooling device registration helpers (Aryan Sinha) - Correct the documented return value of ti_bandgap_get_sensor_data() to describe validation errors and potentially NULL stored data (Karl Mehltretter) - Ensure NUL-termination when copying the cooling device command-line argument in tmon and fix the associated string truncation warning (Florian Fainelli) - Fix undefined behavior caused by a signed shift in the tmon thermal zone binding display (Liu Jing) - Fix wording in tmon comments (Hemanth Selam)
Hi Rafael, - Add the Exynos ACPM thermal driver for Google GS101, along with DT bindings and a MAINTAINERS entry (Tudor Ambarus) - Add Renesas RZ/G3L thermal sensor support and DT bindings, and move default calibration values to per-SoC match data (Biju Das) - Add Qualcomm MSM8952 TSENS support and the corresponding DT binding compatible (Muzaffer Kadir) - Document the Qualcomm PMAU0102 Master BandGap temperature monitor compatible in the DT bindings (Dhruvin Rajpura) - Extend the QCom TSENS v2 trip temperature limits to the hardware range of -204°C to +204°C to prevent interrupt storms when operating beyond the previous software limits (Priyansh Jain) - Fix temperature threshold map indexing in the QCom SPMI temperature alarm driver to prevent out-of-bounds reads (Georgi Djakov) - Describe the additional bus clock required by the Amlogic T7 thermal sensor and switch the driver to the clk_bulk API to manage multiple clocks (Ronald Claveau) - Request the Airoha EN7581 IRQ after thermal zone registration to prevent the interrupt handler from accessing an unregistered or already freed thermal zone (Vitaliy Sochnev) - Fix the Airoha AN7583 ADC mux field mapping, serialize access to the shared ADC, and verify mux selection to avoid invalid temperature readings and spurious critical shutdowns (Vitaliy Sochnev) - Register separate thermal zones for the AN7583 bandgap, GbE and CPU sensors, and update the DT bindings to use one thermal sensor cell to select the sensor (Vitaliy Sochnev) - Fix signed integer overflow in the Renesas RZ/G3E temperature-to-code conversion, preserve compare interrupt state across runtime PM, and prevent overlapping temperature conversions (Ovidiu Panait) - Remove redundant trip window validation and runtime PM pm_runtime_mark_last_busy() calls from the Renesas RZ/G3E driver (Ovidiu Panait) - Propagate reset assertion failures from Renesas RZ/G3E suspend and attempt to restore power if the sensor was active (Pengpeng Hou) - Stop the TI bandgap alert IRQ before removing sensor interfaces and cancel pending alert work to prevent use-after-free on driver removal (Weigang He) - Validate Spreadtrum sensor IDs read from the device tree before using them for register offsets and array indexing (Weigang He) - Convert the TI OMAP bandgap DT bindings to schema and document the DRA752 compatible and thermal sensor cells (Bhargav Joshi) - Use DT property helpers matching the signed temperature and unsigned hysteresis types defined by the thermal zone bindings (Rob Herring) - Reuse common error handling code in the power allocator governor bind callback (Markus Elfring) - Constify the thermal zone device operations in the i.MX9 driver (Christophe JAILLET) - Fix kernel-doc parameter names and firmware node references in the cooling device registration helpers (Aryan Sinha) - Correct the documented return value of ti_bandgap_get_sensor_data() to describe validation errors and potentially NULL stored data (Karl Mehltretter) - Ensure NUL-termination when copying the cooling device command-line argument in tmon and fix the associated string truncation warning (Florian Fainelli) - Fix undefined behavior caused by a signed shift in the tmon thermal zone binding display (Liu Jing) - Fix wording in tmon comments (Hemanth Selam)
NIOS2: update for v7.4 - Fix __wsum type degradation in csum_fold()
Hey folks, I think one of these may have fallen on the floor due to being late for v7.3 and deferred in patchwork [1], so my branch is still based on v7.2-rc1. There may be another driver appearing here, via the arm64 tree, but I don't expect any conflicts at all if it does, since nothing here touches makefiles/kconfig etc. Thanks, Conor. 1 https://patchwork.kernel.org/project/linux-soc/patch/20260813-cope-smugness-dd4de191bdda@spud/ standalone cache drivers for v7.4 Three low-priority bugfixes for issues in the hisi hha and sifive ccache drivers as well as the core code. Signed-off-by: Conor Dooley <[email protected]>
Hey folks, Diff here contains a lot of clock bindings, so I've provided an explanation in the tag. Thanks, Conor. RISC-V misc. soc drivers for v7.4 StarFive: Syscon bindings and a socinfo driver for the JHB100. There ended up being several clock bindings here also because the clock tree needed the whole lot due to headers and I envisaged this being part of a three-way shared tag between my soc driver branch, dts branch and the clock tree. Due to timing, the dts branch didn't get this content, leading to the slightly odd branch here. Microchip: A bugfix for teardown code in the mpfs system controller driver. Signed-off-by: Conor Dooley <[email protected]>
Hey folks, Small enough PR here, I was hoping to get the StarFive jhb100 SoC in, but that'll have to wait for 7.5, along with the deprecation of the Canaan K210 that Arnd and I discussed last week. Cheers, Conor. RISC-V misc. devicetrees for v7.4 Microchip: Add Valentina as a second maintainer because Daire is largely inactive. Starfive: Fix the PWM nodes, because a opencores,pwm-v1 instance only ever provides one PWM channel. Signed-off-by: Conor Dooley <[email protected]>
Hey folks, Might be my last mini PR here, since the RISC-V SSE driver is coming via the actual RISC-V tree, so there'll almost certainly be a much increased activity here going forwards. I'm a bit late PR wise (sorry) but I blame conferences and a busy week beforehand for that... Thanks, Conor. RISC-V firmware drivers for v7.4 A single fix/cleanup for the auto update driver. Signed-off-by: Conor Dooley <[email protected]>
Hi Matthew, I'm sending the Rust XArray for the current v7.4 cycle, although it is probably too late for it. Just let me know if you need me to resend it later, rebased or under a different tag. Thanks, Daniel Rust XArray for v7.4 Add a Rust implementation of the XArray (rust/kernel/rxarray.rs), introduced as an experimental Rust reference implementation [1] of lib/xarray.c, as discussed at LPC26 [2]. This lets Rust users, such as the null block driver and possibly Tyr (under evaluation), experiment with and evaluate both implementations. The goal is to evaluate whether Rust helps with the most common class of XArray bugs, misuse of the API by its callers, such as the long-dormant page cache corruption that almost blocked the LBS work [3]. The RFC v1 cover letter has the full motivation, benchmark baseline and roadmap [4]. This initial version supports store, load, load_mut and erase. It has been tested with the included KUnit tests and doctests. Outside of rust/kernel/rxarray.rs, this touches: - MAINTAINERS: new XARRAY [RUST] entry, maintained by Daniel Gomez and Matthew Wilcox, with Andreas Hindborg as reviewer. - lib/Kconfig: new XARRAY_RUST option. - rust/kernel/lib.rs: register the rxarray module. The C XArray implementation is unchanged. Link: https://rust-for-linux.com/rust-reference-drivers/ [1] Link: https://lore.kernel.org/all/[email protected]/ [2] Link: https://lore.kernel.org/all/[email protected]/ [3] Link: https://lore.kernel.org/all/[email protected]/ [4]
This is the pull request with interconnect changes for the v7.4-rc1 merge window. As always, the short summary is in the signed tag. All patches have been in linux-next for more than a week. There possible. Thanks, Georgi interconnect changes for 7.4 This pull request contains the following interconnect updates for the 7.4-rc1 merge window: - New driver for Kuno SoC - Make important drivers default - Add multi-port QoS programming support - Add support for Milos OSM L3 - Misc cleanups and fixes Signed-off-by: Georgi Djakov <[email protected]>
Hi Arnd, Changes to fsl-mc bus are reviewed or acked by Ioana Changes to usb drivers are acked by greg Thanks Christophe FSL SOC Changes for 7.4 Freescale QUICC Engine: - Fix sparse warnings in GPIO - Drop GPIOD_FLAGS_BIT_NONEXCLUSIVE Freescale CPM1 Timeslot Assigner: - Fix clock leak in tsa_of_parse_tdms() Data Path I/O: - Free the IRQ before releasing the I/O object - Fix cleanup on IRQ registration failure Freescale Management Complex: - Annotate fsl_mc_io.portal_virt_addr with __counted_by_ptr - Drop the fwnode links of the dpmacs nodes - Register the object drivers after misc_class exists - Set dma_mask for the DPRC devices - Fix repeated word 'for' in comment
Alloc changes for 7.4-rc1 - Add Alice Ryhl as co-maintainer for Rust [ALLOC] - Allow different error types in KBox::pin_slice(), enabling use of infallible initializers - Add NumaNode::id() accessor to retrieve the underlying NUMA node identifier
i.MX clock changes for 7.4 - Propagate busy timeout errors from i.MX93 composite gate enable. - Add 350 MHz support to the fractional-N General-Purpose PLL for i.MX93 display use cases. - Fix clock reference leaks in imx_get_clk_hw_by_name() and imx_obtain_fixed_clock_hw().
I've been absorbed with efforts outside of the kernel recently so there's not much activity in the BMC tree this time around. This is the only PR I plan to send for v7.4. That said, there are are many patches on the list that need attention. I will get to them. Various revisions of series I've applied from Tomer have been on the lists for a while. I've worked through some tidying with him in recent days so we can get them applied. There are still some process improvements necessary on his part with regard to sending patches for the BMC tree, which I've discussed with him. I've had to lightly rework v10 of his series in order to get it applied as noted in the relevant commit messages. The work in the tag is currently in linux-next and I am yet to receive any negative automated feedback on it. I'll be travelling for the next week for the OCP Global conference but will keep watch for any concerns that arise. Please merge. Thanks, Andrew nuvoton: First batch of arm64 devicetree changes for v7.4 A short series of enhancements for the NPCM845 SoC and its evaluation board= .
SoCFPGA Firmware update for v7.4 - Turn off secondary CPUs using PSCI on Agilex7 and Stratix10 Warm resets on these platforms require a clean PSCI state. - Clean up stratix10_svc_free_memory() to reduce nesting - Add SMMU DMA coherent support on Agilex5 Use DMA-coherent buffers and IOVAs in the service driver for Agilex5 - Set kaddr1 to res.a1 which matches the existing error path and allow callers to retrieve firmware status details - Allow older firmware that excluded COMMAND_RSU_UPDATE and COMMAND_RSU_STATUS to return SVC_STATUS_NO_SUPPORT so the firmware can continue instead of waiting for a timeout. - Add support for SDM mailbox interrupt on async transactions - Reduce polling times by introducing polling modes(Fast and Slow)
the upcoming v7.4 merge window. There are three new drivers, support for a new SPMI PMIC and some minor driver improvements along with necessary DT bindings changes. Details are in the signed tag. Thanks, Bartosz Qualcomm pin control updates for v7.4-rc1 New drivers: - add the TLMM drivers for Kuno and MSM8952 - add the LPASS LPI driver for Hawi New model support: - support PMAU0102 GPIO in pinctrl-spmi-gpio Driver improvements: - fix/unify naming convention in defines specific to Qualcomm pinctrl drivers - extend debugfs verbosity for pinctrl-lpass-lpi - make the return type from kcalloc() const in tlmm-test Devicetree bindings: - add binding documents for new drivers - document compatibles for new models - document the gpio-line-names property for qcom,sc8280xp-tlmm
Hi SoC Maintainers, Yixun Lan RISC-V SpacemiT DT changes for 7.4 For K3 SoC - Correct CLINT and ACLINT - Add USB nodes info - Add cpu scaling - Add rfkill node - Add i2s info - Fix IMSIC - Enable thermal and fan control (CTF230) For K1 SoC - Set mac address from eeprom - Enable onboard eeprom MISC Changes: - MAINTAINERS updates
Hi Breno, Here is the first pull request from me to you for the Rust configfs abstractions. Please note that I neglected to push these three patches to the remote that is picked up by linux-next (just did it now). However, I tried the merge and verified everything works under my usual configurations, so we should be fine. Best regards, Andreas Hindborg Rust configfs changes for v7.4-rc1 Three changes for the Rust configfs bindings. One typo fix for a safety comment and two bug fixes.
Hi, There is a minor conflict against bd94bea7165be450903c6d64bbcb4862e36798f9 = see[1] TI K3 defconfig updates for v7.4 - Convert the TI System Control Interface (TISCI) drivers in the arm64 defconfig from built-in to loadable modules. This reduces the size of the default kernel image, while the drivers remain available on K3 platforms through the initramfs or root filesystem.
Hi, Please note that the property 'power-off-delay-us' picked up that is availa= ble in linux-next. We are clean on dtbs_check on linux-next next-20261002. TI K3 device tree updates for v7.4 Generic Fixes/Cleanups: * MMC: Configure the MMC clock pads as OUTPUT across AM62x, AM62A and AM62P based boards (SK, LP-SK, BeaglePlay, PocketBeagle2, phyCORE, TQMa62xx, Variscite and Verdin), so the clock pin is driven correctly. * am62a: Fix the MMC0_CLK pin register address. * am62*: Add the wakeup R5F nodes to the pre-RAM bootphase, and split the R= 5F memory region on AM62A and AM62P. * am62*: Correct the wkup R5F memory region size on the AM62A, AM62D and AM= 62P boards and SoMs that reuse the shared IPC firmware layout. * k3-pinctrl: Add virtual GPIO select mux macros. * am62a/am62p/j722s: Fix watchdog comments. * dt-bindings: Update the audio-refclk binding and the J721E system control= ler binding. SoC Specific features and Fixes: AM62A: * Assign on-chip SRAM to the VPU (wave5) node. AM62P/J722S: * Add the GPU node. * Assign on-chip SRAM to the VPU node. J721S2: * Add an mmio-sram node to main_navss and assign SRAM to the VPU node. Board Specific: AM62x: * SK: Mark the eMMC as non-removable. * AM62L EVM: Remove unnecessary internal pull-ups on the MMC0 pins. * Verdin, Ivy and Zinnia: Fix the main_gpio0/main_gpio1 line-names array si= zes and add the missing SODIMM_84 line name. AM62A: * SK: Add an ethernet alias. AM62P: * Verdin: Build the Zinnia DTBs. AM654: * Base board: Add a power-off delay so the MMC supply is properly power-cyc= led. AM67 (J722S): * Add support for the PHYTEC phyCORE-AM67x SoM, including its bindings. AM69 (J784S4/J742S2): * Aquila: Add the Toradex DSI-to-LVDS adapter with the 10.1" V2 display and= fix a typo in the AQUILA_B73 GPIO line name. * EVM: Set the ACSPCIe refclk to MAIN_PLL2_HSDIV4 for PCIe1. J7200: * Common proc board: Add an ethernet alias. J721S2: * EVM: Add an audio overlay. * Common proc board: Add an ethernet alias. J722S: * EVM: Switch the audio codec clock from audio_refclk1 to an external clock, and add an ethernet alias
Hi, TI Keystone device tree updates for v7.4 Generic Fixups/Cleanups: * Correct white-space style across the Keystone DTSI files * Align devctrl child node names with dtschema naming requirements SoC Specific Fixes: K2G: * Add the required #phy-cells property to the usb-nop-xceiv nodes * Move the usb-phy nodes out of simple-bus, as they have no MMIO address (dtbs_check fixes) K2L: * Rename the deprecated ti,davinci-spi-num-cs property to the standard num-cs (dtbs_check fix)
Hi, TI SoC driver updates for v7.4 Small cleanup-only pull request for drivers/firmware and drivers/soc/ti. It contains no functional changes to SoC behavior and no new features Firmware: - ti_sci: Simplify the buffer pointer allocation by using kzalloc() in place of kcalloc() - ti_sci: Fix a typo in comments SoC drivers: - k3-ringacc: Correct the ring API kernel-doc and the DMA ring initializati= on kernel-doc so the documentation matches the code - knav_qmss: Fix typos in comments
Hi, TI K3 MAINTAINERS updates for v7.4 - Add the git tree entry for the TI K3 ARCHITECTURE section, so that developers and contributors can easily find the tree where K3 SoC and board patches are maintained and queued.
Hi Arnd and SoC folks, Note that I do not treat untested, LLM-assisted fixes as critical fixes, thus usually do not take them into fixes cycle. Best regards, Krzysztof Memory controller drivers for v7.4 1. Broadcom DPFE: Fix handling kernel memory accesses with malicious or compromised firmware and possible out-of-bounds read triggered by buggy co-processor. Also validate firmware image contents before processing it. 2. Renesas RPC IF: One fix for volatile register access, several cleanups and enable autosuspend in runtime PM. 3. Several minor improvements and fixes for various drivers: TI EMIF, Samsung Exynos5422 DMC, Nvidia Tegra264 and STM32 OMM. The fixes seems to be effect of LLM usage, thus they were neither reproduced nor tested, making them non-critical fixes. 4. Mediatek SMI: Add support for MT8189 SoC.
Samsung SoC clock drivers changes for v7.4 1. New drivers for a new SoC: Exynos5515. 2. ACPM driver: add support for Exynos850 (beside existing Google GS101).
Samsung SoC drivers for v7.4 1. First driver patches for Exynos5515. 2. Fix error paths and possible probe-ordering issue of Exynos PMU (Power Management) driver.
Hi Arnd and SoC folks, New SoC platform, in the future this will be handled by Peter Griffin. Best regards, Krzysztof Google Tensor G5 SoC family - new platform Introduce new ARCH_GOOGLE for the Google Tensor G5 (Laguna) family of SoCs. The very early designs - Google GS101 - were derivatives of Samsung SoC, thus they were grouped under Samsung SoC. The G5 however went its own way, so no commonality with Samsung and a new ARCH_GOOGLE symbol. Currently upstreamed SoC is used for example in Google Pixel 10 phones. Add basic support of three of their variants (Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL).
Thanks, Jens Move tee_ioctl_shm_register_data to above IOCTL definition
Thanks, Jens Drop unused assignment of platform_device_id driver data
T-HEAD device tree changes for v7.4 Add the Milk-V Meles, a single board computer with the TH1520 SoC: - Document the board compatible alongside the BeagleV Ahead - Add the base device tree with UART0, eMMC, microSD, Gigabit Ethernet and the PWM fan - Enable the AP6256 Wi-Fi module on SDIO1 - Enable HDMI output through the DC8200 display controller and the DW-HDMI transmitter Also update MAINTAINERS: move the T-Head SoC tree T: entry to kernel.org
Apple SoC driver updates for 7.4 - Enabled shared GPIO support for ARCH_APPLE which will be used for a shared GPIO line for the speaker codecs - Add RTKit crashlog support for older 32-bit co-coprocessors used in older iPhones and iPads. Signed-off-by: Sven Peter <[email protected]>
Apple SoC DTS changes for 7.4 - Initial device trees for all machines with the base M4 SoC and the A18 Pro based MacBook Neo. As usual, the PMGR nodes are responsible for the majority of the diffstat. This is enough to boot with all cores to a serial console but future work will be required to make these useful for users. - Fixes for a whole bunch of dt-check-style issues for M1/M2/M3 Signed-off-by: Sven Peter <[email protected]>
Steven, RTLA patches for 7.4 - Test actions in absence of threshold Cover the case which regressed in the past in tests. - More robust CPU count detection Parse /sys/devices/system/cpu/possible directly instead of going through libc for CPU count and sanity check against any mismatch with the number reported by tracefs / osnoise. - Add option to record IPI count in osnoise top In addition to counting IRQs, add an option to enable counting IPIs targetting the measurement CPU to the rtla-osnoise-top tool. - Improve runtime test usability Catch up with increased complexity of runtime tests with better defaults and more options available to the developer running the tests. - Simplify osnoise tracer option setting code Deduplicate osnoise tracer option setting code with macros to make it less error-prone and to make it easier to add new tracer options in the future. Signed-off-by: Tomas Glozar <[email protected]>
The OP-TEE driver is still only built for Arm, but that will change in a not too distant future. Thanks, Jens Build the OP-TEE driver's SMC and FF-A code only where supported
Steve, rv changes for v7.4 (for-next) Summary of changes: - Improve lockdep annotation for reactors Reactors are not supposed to take locks, so they fit the LD_WAIT_FREE lockdep class. However, reactors may run in preemptible context and if the preempting code (tick or simply the scheduler) takes locks, we see a lockdep splat. Switch to LD_WAIT_SPIN to avoid the splat while documenting that reactors should still not take locks. - Add KUnit tests for reactors Add KUnit test cases to validate registration and reaction, this requires exporting some symbols and other minor fixes. - Use the right rv_this variable in the wakeup monitor LTL monitors were updated to use the generic rv_this static variable but this change wasn't propagated to the newly introduced wakeup monitor. This broke reactors for the monitor: update the it.
Hi Jens, I have a number of Rust block layer patches I would ask you to pick for v7.4. I have collected them into a patch series as well as a pull request so you can use whatever is easier. The changes cover - Style and formatting changes. - Documentation fixes. - Fixes for missing trait bounds that can cause API unsoundness. - A change to set the owner of the file operations vtable in `GenDisk`. - Two bug fixes for the rnull driver.
SGkgR3JlZyENCg0KUGxlYXNlIHB1bGwgUEVDSSB1cGRhdGUgZm9yIExpbnV4IHY3LjQuDQoNClRo YW5rcw0KLUl3b25hDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgOTNmNTE1 NzllN2RmMjQ4NzgwMjE0MDk0NDE4ZjIwNTI1MzM4M2NjNToNCg0KICBMaW51eCA3LjMtcmM0ICgy MDI2LTA5LTIwIDEzOjQ4OjE1IC0wNzAwKQ0KDQphcmUgYXZhaWxhYmxlIGluIHRoZSBHaXQgcmVw b3NpdG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5l bC9naXQvaXdpL2xpbnV4LmdpdCB0YWdzL3BlY2ktbmV4dC03LjQtcmMxDQoNCmZvciB5b3UgdG8g ZmV0Y2ggY2hhbmdlcyB1cCB0byA0MjUxMjVlNmQ0MDhiNTk2OWFmYjk5YzNlOTVhMzkxZjFmMWFk ODFkOg0KDQogIHBlY2k6IG5wY206IEluaXRpYWxpemUgc3RhdGUgYmVmb3JlIHJlcXVlc3Rpbmcg SVJRICgyMDI2LTA5LTI1IDIyOjIwOjM4ICswMjAwKQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpVcGRhdGUgcGVjaS1u ZXh0IGZvciB2Ny40LXJjMQ0KDQpTbWFsbCBmaXhlcyBpbiBjb250cm9sbGVyIGRyaXZlcnMgaW5j bHVkaW5nOg0KLSBmaXggZm9yIHVuaW5pdGlhbGl6ZWQgY2xrX2luaXRfZGF0YSBzdHJ1Y3R1cmUg KHBlY2ktYXNwZWVkKSwNCi0gbW92aW5nIGxvY2sgYW5kIGNvbXBsZXRpb24gaW5pdGlhbGl6YXRp b25zIGJlZm9yZSByZWdpc3RlcmluZw0KICBpbnRlcnJ1cHQgaGFuZGxlciB0byBhdm9pZCB1c2lu ZyB0aGVtIHVuaW5pdGlhbGl6ZWQgKHBlY2ktYXNwZWVkLA0KICBwZWNpLW5wY20pLg0KDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQpHZWVydCBVeXR0ZXJob2V2ZW4gKDEpOg0KICAgICAgcGVjaTogY29udHJvbGxlcjogYXNw ZWVkOiBNYWtlIHN1cmUgY2xrX2luaXRfZGF0YSBpcyBmdWxseSBpbml0aWFsaXplZA0KDQpSdW55 dSBYaWFvICgyKToNCiAgICAgIHBlY2k6IGFzcGVlZDogSW5pdGlhbGl6ZSBzdGF0ZSBiZWZvcmUg cmVxdWVzdGluZyBJUlENCiAgICAgIHBlY2k6IG5wY206IEluaXRpYWxpemUgc3RhdGUgYmVmb3Jl IHJlcXVlc3RpbmcgSVJRDQoNCiBkcml2ZXJzL3BlY2kvY29udHJvbGxlci9wZWNpLWFzcGVlZC5j IHwgOCArKysrLS0tLQ0KIGRyaXZlcnMvcGVjaS9jb250cm9sbGVyL3BlY2ktbnBjbS5jICAgfCA2 ICsrKy0tLQ0KIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQ0K
Hi! tree to satisfy the dependencies for supporting BT on Monza. Thanks, Bartosz power: sequencing: provide and use pwrseq_is_controllable() Add a new core power sequencing consumer functions: pwrseq_is_controllable(). This allows users to check whether the sequencer's target is actually host-controllable.