Daily update · Aug 14–15, 2026
Linux mainline update: DRM scheduler revert, RISC-V fixes, and device driver hardening
A roundup of fixes including a DRM scheduler revert, RISC-V ftrace and string fixes, AMDGPU/Intel Xe stability, Ceph client hardening, and audio device corrections.
In brief
Today's mainline changes are dominated by a large revert of the DRM scheduler simplification and default 'fair' policy, which had caused regressions across AMD, Intel Xe, Panfrost, and other GPU drivers; the fair policy remains available but is now experimental. RISC-V receives fixes for ftrace with kprobes, ZBB strnlen boundary handling, and early hwprobe vDSO data. AMDGPU gains hardened UVD message validation and several display/power fixes, while Intel Xe gets display allocation, ring ordering, and GuC UM queue fixes. Ceph and libceph are hardened against out-of-bounds decodes. Audio fixes cover RK3588 I2S MCLK, RT5645/RT1320, USB MIDI2, and a SteelSeries headset mixer regression.
Core kernel
Fix PID allocation into dead ancestor namespaces
alloc_pid() now checks PIDNS_ADDING in every ancestor namespace before publishing a new pid, preventing pids from being allocated through namespaces whose init task has already exited.
Why it matters: Prevents a subtle kernel state corruption in nested PID namespaces, improving reliability for container workloads.
Stop unprivileged WARN_ON in overlayfs and binfmt_misc
Completing an fsopen() context from a different user namespace is allowed, but these filesystems WARN_ONed the mismatch, letting unprivileged users spam kernel warnings. The WARN_ONs were removed.
Why it matters: Reduces kernel log spam and a possible DoS on multi-user systems.
RISC-V
Fix RISC-V ftrace with kprobed functions
RISC-V ftrace call-site modification failed when the target function was also kprobed, triggering warnings and breaking tracing. The fix corrects the replacement logic.
Why it matters: RISC-V users get stable ftrace/BPF functionality.
Fix RISC-V ZBB strnlen reading past boundary
The ZBB-optimized strnlen could load a full word starting exactly at the count limit, faulting if that address was unmapped. The fix uses the last valid byte for the boundary.
Why it matters: Prevents potential kernel crashes on RISC-V systems with ZBB.
Fix RISC-V hwprobe vDSO data being finalized too early
Unaligned access speed probes ran after usermode helpers, so an early hwprobe could cache incomplete vDSO data. The probe registration now happens before usermode.
Why it matters: RISC-V user space gets accurate hwprobe results from early boot.
Audio
Fix RK3588 I2S MCLK being disabled at boot
The RK3588 clock driver now marks unused I2S MCLK output gates with CLK_IGNORE_UNUSED, preserving the state left by firmware instead of gating them and cutting analog audio on boards that don't yet reference the gates.
Why it matters: RK3588 SBCs and devices (e.g., Rock 5B) keep audio working after boot.
Fix ALSA USB MIDI2 use-after-free
Delayed release of MIDI2 endpoints could dereference a freed UMP endpoint object. Adding a private_free callback clears the stale pointer.
Why it matters: Avoids rare kernel crashes with USB MIDI2 devices.
Fix USB audio mixer regression on SteelSeries Arctis Nova 5
A new 'sticky mixer' sanity check disabled mixers on this headset because its firmware doesn't handle GET_CUR, causing very low volumes. The fix ignores GET_CUR errors with a quirk.
Why it matters: Owners of the Arctis Nova 5 get correct audio volume again.
Fix RT5645 jack detection at boot
Without a machine driver, rt5645 only sampled jack state on an IRQ edge, so headphones already in the socket at boot stayed silent. An initial detection at probe fixes this.
Why it matters: Devices using RT5645 now have working audio immediately after boot.
Fix RT1320 amplifier initialization on Surface Pro 11
The RT1320 SDCA amp skipped its vendor init preset because it never set FUNCTION_NEEDS_INITIALIZATION; it now also runs the preset on first hardware init, matching sibling drivers.
Why it matters: Audio works on Microsoft Surface Pro 11 (Intel).
Fix soundwire MBQ regmap NULL callback crash
regmap_sdw_mbq now checks whether the readable_reg callback is set before calling it, avoiding a NULL pointer dereference when devices respond with COMMAND_IGNORED.
Why it matters: Prevents kernel crashes on soundwire devices like certain audio codecs.
GPU and DRM
Fix out-of-bounds read in HDMI connector state helper
Copying an audio infoframe used the destination size instead of the source, reading 60 bytes from a 28-byte allocation. The fix uses the source size and adds a build-time check.
Why it matters: Improves kernel memory safety in DRM display code.
Revert DRM scheduler rework after regressions
A series of reverts undid the DRM scheduler simplification and default 'fair' policy that caused regressions across AMD, Intel Xe, Panfrost, and other GPU drivers. The fair policy remains but is marked experimental.
Why it matters: Restores GPU scheduling stability for affected users; the fair policy is opt-in/experimental.
6853da8cdb66482025714dba6ef022fbe26dc41282f9ca2209e6a5d433efc9126bf8fcb55b07bcb103432683a0e7c4ccb9f3f3f00bc86c7b7e5120584ce955c533914788c25fcd6bd5b15e57045505463d54efd7aa82a253025767cf83ac83169e9da86254272bbea6b819be9a11db688720
Harden AMDGPU UVD message validation
Adds bounds checks and correct size calculations for UVD decode messages, rejecting dimensions, reference counts, and buffer sizes that could overflow DPB size math or cause memory corruption.
Why it matters: Blocks userspace from crashing or corrupting kernel memory via the UVD video engine on older AMD GPUs, improving security and stability.
8c9aebcdd9f421a8084cd762b8bb9ba3f10118727670b4479fca434208f1
Fix AMDGPU GEM and submission validation
Duplicate FENCE chunks are now rejected to avoid BO reference leaks, invalid GEM_CREATE domain combinations return -EINVAL instead of triggering BUG_ON, and a missing SPM update check in vm_flush is fixed.
Why it matters: Prevents memory leaks, kernel panics, and VM flush errors that could affect AMD GPU users running certain workloads.
Fix AMD display vblank NULL pointer crash
amdgpu_dm_crtc_set_vblank() now checks that the stream is attached before enabling vblank, preventing a NULL pointer dereference in DRM_IOCTL_MODE_CRTC_GET_SEQUENCE.
Why it matters: Fixes a kernel crash that could occur when running Vulkan WSI applications on AMD GPUs with Replay panels.
Fix AMD GPU power management and discovery
ASPM is now evaluated on the host link for dGPUs behind PCIe switches, NBIF 6.3.1 L1 low-power settings are properly applied, and the default IP discovery offset is preferred when valid.
Why it matters: Improves power efficiency and avoids initialization problems on recent AMD Radeon discrete GPUs.
Fix BT.2020 YCbCr color output on AMD display
Corrects the output CSC matrices for limited and full-range BT.2020, fixing luma scaling and offsets that made HDR content look too bright and colors inaccurate.
Why it matters: AMD GPU users with HDR or wide-gamut displays get correct BT.2020 color reproduction.
Fix Intel Xe display page table allocation
Removes the fallback to system memory for DPT allocations and avoids stolen memory usage, which caused black screens and random system hangs on some platforms.
Why it matters: Fixes display issues on Intel Arc and integrated Xe GPUs, particularly Lunar Lake and Battlemage.
Fix Intel Xe ring write ordering
Adds a write memory barrier before publishing ring tail updates, preventing the device from observing new tail values before ring contents are flushed.
Why it matters: Prevents intermittent GPU hangs and command stream corruption on Intel Xe GPUs.
Fix Intel Xe GuC UM queue handling
UM queues are now allocated in a separate BO, placed in VRAM on discrete GPUs, and mapped uncached to match GAM writes, avoiding stale data and system hangs.
Why it matters: Improves stability of GuC communication on Intel Xe platforms.
Fix Intel Xe device probe failure cleanup
xe_device_probe() now performs proper cleanup on failure paths instead of leaving a stale DRM device, which previously caused sysfs duplicate filename errors on module reload.
Why it matters: Makes loading and unloading the Xe driver more reliable, especially for users switching between i915 and xe.
Fix crashes in DRM log with scale parameter
Fixes division by zero when scale=0, out-of-bounds read on empty messages, and infinite loop when scaled font exceeds display dimensions.
Why it matters: Prevents kernel panics or hangs when using the DRM log with integer scaling enabled.
Ceph
Fix out-of-bounds reads in libceph decode paths
Multiple unsafe decodes in Ceph client code (decode_locker, decode_watchers, and primary_temp handling) lacked bounds checks and could allow a malicious or compromised OSD to trigger slab-out-of-bounds reads.
Why it matters: Hardens Ceph clients against hostile OSDs, preventing potential kernel memory disclosure or crashes.
Fix Ceph addrvec decoding and MDS selection
libceph now accepts addrvecs with multiple same-type entries (common with Proxmox-generated monmaps), the MDS random selector no longer picks down/DNE ranks, and SET_LAYOUT ioctls use the mount idmap for owner checks.
Why it matters: Fixes Ceph mount failures on clusters with multi-CIDR public networks, avoids selecting dead MDS ranks, and corrects permission checks on idmapped CephFS mounts.
Platform and drivers
Fix MediaTek MT8183 boot hang from MFG power domain
On MT8183, the kernel could power off a partially-on MFG power domain during sync_state while the ACP was prefetching, causing an AXI stall. The fix keeps firmware-enabled domains powered.
Why it matters: MT8183 Chromebooks and tablets boot without random hangs.
Fix SCMI performance domain error on zero performance state
The SCMI perf domain returned -EINVAL for performance state 0, which the OPP framework uses to drop a perf vote (e.g., at runtime suspend). It's now a no-op.
Why it matters: More reliable runtime PM on ARM SoCs using SCMI performance domains.
Fix busy_timeout overflow on 32-bit omap_hsmmc
The milliseconds-to-nanoseconds conversion used 32-bit arithmetic and wrapped for busy timeouts above ~4.3 seconds, corrupting long MMC operations. The driver now casts properly.
Why it matters: 32-bit OMAP platforms can reliably run long eMMC commands like erase or SANITIZE.
Fix virtio SPI device registration race
virtio_spi_probe() now calls virtio_device_ready() before registering the SPI controller, preventing SPI transfers before DRIVER_OK is set as required by the virtio spec.
Why it matters: Fixes potential hangs or crashes with virtio SPI devices in VMs and embedded environments.
Source commits103 entries +
riscv: lib: Fix ZBB strnlen reading past count boundary
Michael Neuling · Apr 13, 2026 · 1 files
clk: spacemit: k3: fix USB2 bus clock
Yixun Lan · May 18, 2026 · 1 files
libceph: fix multiple unsafe decodes in decode_locker()
Pavitra Jha · Jun 2, 2026 · 1 files
drm/amdgpu: fix missing check in vm_flush()
Alex Deucher · Jun 5, 2026 · 1 files
libceph: tolerate addrvecs with multiple entries of the same type
Kefu Chai · Jun 11, 2026 · 1 files
Input: sur40 - fix input device registration ordering
Dmitry Torokhov · Jun 16, 2026 · 1 files
Input: sur40 - fix V4L error path cleanup
Dmitry Torokhov · Jun 16, 2026 · 1 files
Revert "clk: qcom: regmap-phy-mux: Rework the implementation"
Konrad Dybcio · Jun 22, 2026 · 1 files
dt-bindings: clock: Replace bouncing emails
Krzysztof Kozlowski · Jun 23, 2026 · 4 files
clk: qcom: dispcc-eliza: Fix disp_cc_mdss_mdp_clk_src RCG stall on Eliza EVK
Krzysztof Kozlowski · Jun 23, 2026 · 1 files
clk: rockchip: rk3588: don't disable unused I2S MCLK output gates
Daniele Briguglio · Jun 24, 2026 · 1 files
clk: spacemit: k3: set hdma clock as critical
Yixun Lan · Jun 30, 2026 · 1 files
drm/xe: Fix DPT allocation paths.
Maarten Lankhorst · Jun 30, 2026 · 1 files
libceph: fix OOB read in decode_watchers() via missing bounds check
Pavitra Jha · Jul 8, 2026 · 1 files
pmdomain: mediatek: fix remaining %pOF after of_node_put()
Guangshuo Li · Jul 8, 2026 · 1 files
drm/xe/oa: Check managed mutex initialization errors
Linmao Li · Jul 13, 2026 · 1 files
drm/amdgpu: Prefer default discovery offset
Lijo Lazar · Jul 13, 2026 · 1 files
pmdomains: mediatek: Avoid setting RTFF's CLK_DIS before NRESTORE
AngeloGioacchino Del Regno · Jul 16, 2026 · 1 files
drm/xe/pxp: add termination on resume
Daniele Ceraolo Spurio · Jul 20, 2026 · 2 files
riscv: hwprobe: Register unaligned probes before usermode
Rui Qi · Jul 21, 2026 · 1 files
regulator: dt-bindings: qcom,rpmh: Add support for PM8350B
Esteban Urrutia · Jul 23, 2026 · 1 files
regulator: qcom-rpmh: Add support for PM8350B
Esteban Urrutia · Jul 23, 2026 · 1 files
drm/connector/hdmi: Fix out of bounds memory read
John Harrison · Jul 23, 2026 · 1 files
regulator: fp9931: Fix VPOS/VNEG voltage selector table
Robby Cai · Jul 24, 2026 · 1 files
ceph: fix MDS random selection readiness predicate
Yiming Zhu · Jul 24, 2026 · 1 files
ceph: use the mount idmap for the owner checks in the SET_LAYOUT ioctls
Zhan Xusheng · Jul 27, 2026 · 1 files
drm/amdgpu: validate GEM_CREATE domain combinations
Candice Li · Jul 27, 2026 · 1 files
mmc: sdhci: make tuning_err a signed int
Haibo Chen · Jul 27, 2026 · 1 files
mmc: sdhci: unmap the bounce buffer before device release
Myeonghun Pak · Jul 27, 2026 · 1 files
libceph: Avoid using invalid osd indices from primary_temp
Raphael Zimmer · Jul 28, 2026 · 1 files
drm/log: Fix out-of-bounds read on empty message length
Shixiong Ou · Jul 29, 2026 · 1 files
drm/log: Fix infinite loop when scale is too large for display
Shixiong Ou · Jul 29, 2026 · 1 files
pmdomain: mediatek: Fix mt8183 hang on boot
Dmitry Osipenko · Jul 29, 2026 · 1 files
drm/log: Fix division by zero when scale module parameter is 0
Shixiong Ou · Jul 30, 2026 · 1 files
drm/amdgpu: Reject UVD message with dimensions above 4096
David Rosca · Jul 30, 2026 · 1 files
drm/amdgpu: Fix UVD dpb min size calculation for H264
David Rosca · Jul 30, 2026 · 1 files
drm/amdgpu: Fix UVD decode image min size calculation
David Rosca · Jul 30, 2026 · 1 files
drm/amdgpu: Fix UVD min buffer sizes
David Rosca · Jul 30, 2026 · 1 files
drm/xe/oa: Fix sync entry leak on OA config emit failure
Linmao Li · Jul 31, 2026 · 1 files
riscv: ftrace: Fix ftrace_modify_call failure on kprobed functions
Pu Lehui · Aug 2, 2026 · 1 files
drm/amd/display: fix BT.2020 YCbCr limited output CSC matrix
Nathan Lucas · Aug 2, 2026 · 1 files
drm/amd/display: fix BT.2020 YCbCr output CSC matrices for DCE
Nathan Lucas · Aug 2, 2026 · 2 files
ovl: don't warn when the mount is completed from another user namespace
Christian Brauner · Aug 2, 2026 · 1 files
binfmt_misc: don't warn when the mount is completed from another user namespace
Christian Brauner · Aug 2, 2026 · 1 files
selftests/filesystems: test completing a context from another user namespace
Christian Brauner · Aug 2, 2026 · 3 files
mmc: atmel-mci: Fix use-after-free in atmci_remove due to race condition
Pei Xiao · Aug 3, 2026 · 1 files
spi: dw: fix wrong RX_SAMPLE_DLY setting after resume
Jisheng Zhang · Aug 3, 2026 · 1 files
mmc: omap_hsmmc: fix busy_timeout overflow in ns conversion on 32-bit
Zhan Xusheng · Aug 4, 2026 · 1 files
mmc: loongson2: Fix sg iteration in data reorder functions
Binbin Zhou · Aug 4, 2026 · 1 files
drm/xe/guc_ads: allocate UM queues in a separate BO
Jia Yao · Aug 4, 2026 · 4 files
drm/xe/guc_ads: allocate UM queues in VRAM on dGFX
Jia Yao · Aug 4, 2026 · 2 files
drm/xe/guc_ads: use uncached mapping for UM queue BO
Jia Yao · Aug 4, 2026 · 1 files
pmdomain: arm: Fix -EINVAL from scmi_pd_set_perf_state() on state 0
Praveen Talari · Aug 4, 2026 · 1 files
ASoC: rt1320: run the initialisation preset on the first hardware init
Sergey Lebedev · Aug 4, 2026 · 1 files
drm/amdgpu: check ASPM on the dGPU host link
Yang Wang · Aug 5, 2026 · 1 files
ASoC: rt5645: Perform the initial jack detect at probe
Rudi Heitbaum · Aug 5, 2026 · 1 files
drm/xe: Fix a bug in pc_adjust_freq_bounds()
Vinay Belgaumkar · Aug 5, 2026 · 1 files
drm/amdgpu: disallow multiple FENCE chunks in one submit
Junrui Luo · Aug 6, 2026 · 1 files
spi: dt-bindings: snps,dw-apb-ssi: Document Axiado AX3005
Swark Yang · Aug 6, 2026 · 1 files
ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in NVL match table
Balamurugan C · Aug 6, 2026 · 2 files
ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for NVL.
Balamurugan C · Aug 6, 2026 · 2 files
ASoC: xilinx: formatter_pcm: pass aud_drv_data to irq handlers
Rosen Penev · Aug 6, 2026 · 1 files
ASoC: tas2781: fix clang build error for goto bypassing cleanup variable
Shenghao Ding · Aug 7, 2026 · 1 files
ASoC: amd: yc: Add DMI quirk for HyperX OMEN Gaming Laptop 16-ap1xxx
Lin Xianglin · Aug 7, 2026 · 1 files
drm/amd/display: Fix NULL pointer dereference in amdgpu_dm_crtc_set_vblank()
Samuel Pitoiset · Aug 7, 2026 · 1 files
ASoC: tac5xx2-sdw: select REGMAP_SOUNDWIRE_MBQ
Niranjan H Y · Aug 7, 2026 · 1 files
drm/xe: Order ring writes before ring tail updates
Matthew Brost · Aug 7, 2026 · 1 files
drm/radeon: fix autosuspend cleanup during teardown
Guangshuo Li · Aug 8, 2026 · 1 files
pmdomain: mediatek: mfg: initialize prev_o in mtk_mfg_attach_dev()
Karl Mehltretter · Aug 8, 2026 · 1 files
ALSA: usb: Fix UAF at delayed release of MIDI2 EPs
Takashi Iwai · Aug 8, 2026 · 1 files
ALSA: usb-audio: Fix mixer regression on SteelSeries Arctis Nova 5
Takashi Iwai · Aug 8, 2026 · 1 files
drm/amdgpu: fix nbif 6.3.1 l1 low power not functional
Yang Wang · Aug 10, 2026 · 1 files
drm/xe/lrc: document sentinel and make CTX_TIMESTAMP read TOCTOU-safe
Gajendra Uttamchand · Aug 10, 2026 · 2 files
drm/amdgpu: Implement insert_end for VCE 3
David Rosca · Aug 10, 2026 · 1 files
pmdomain: qcom: rpmhpd: Add missing MXC and MMCX power domains for Eliza
Abel Vesa · Aug 10, 2026 · 1 files
drm/xe: Fix xe_device_probe() failure
Raag Jadav · Aug 10, 2026 · 1 files
ASoC: Intel: NVL: Add entry for HDMI-In capture support to non-I2S codec boards.
Balamurugan C · Aug 11, 2026 · 2 files
drm/amdgpu: Reject UVD message with invalid number of h265 refs
David Rosca · Aug 11, 2026 · 1 files
regmap: sdw-mbq: Fix swap of timeout and retry times
Charles Keepax · Aug 11, 2026 · 1 files
Revert "drm/sched: Remove drm_sched_init_args->num_rqs"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/xe: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 3 files
Revert "drm/v3d: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/sched: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/panthor: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 2 files
Revert "drm/panfrost: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/nouveau: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/msm: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 2 files
Revert "drm/lima: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/imagination: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/etnaviv: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/amdgpu: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "accel/ethosu: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "accel/rocket: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "accel/amdxdna: Remove drm_sched_init_args->num_rqs usage"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
Revert "drm/sched: Embed run queue singleton into the scheduler"
Tvrtko Ursulin · Aug 11, 2026 · 12 files
Revert "drm/sched: Remove FIFO and RR and simplify to a single run queue"
Tvrtko Ursulin · Aug 11, 2026 · 6 files
Revert "drm/sched: Switch default policy to fair"
Tvrtko Ursulin · Aug 11, 2026 · 1 files
drm/sched: Mark fair policy as experimental
Tvrtko Ursulin · Aug 11, 2026 · 1 files
pid: reject allocations through dead ancestor pid namespaces
Jérémy Jean · Aug 11, 2026 · 1 files
regmap: sdw-mbq: don't call an unset readable_reg callback
Andrey Golovko · Aug 11, 2026 · 1 files
erofs: fix EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS on some UP platforms
Gao Xiang · Aug 12, 2026 · 1 files
accel/amdxdna: Skip unmapped range in aie2_populate_range()
Lizhi Hou · Aug 12, 2026 · 1 files
spi: virtio: mark device ready before registering the controller
Jasper Wise · Aug 13, 2026 · 1 files