Linux 7.0 Released
Linux 7.0 Released
The new kernel version is out, this time with an increased major number. As usual, despite the perceived importance of the version number, this is just one release more. That means no spectacular announcements; just consistent work, more features, more fixes, better support.
A couple of non-technical changes stand out in this release: Rust is no longer considered experimental in the kernel, and there is now an official policy on tool-generated content. The kernel keeps evolving and this will surely pave the way for future development in the coming years.
For a detailed list of changes, you can check the KernelNewbies ChangeLog.
At Igalia, the Linux kernel is one of ever-present work areas and interests and we keep contributing to it on many fronts. Here’s our list of contributions and patches for this release.
Igalia changelog
Direct Rendering Manager improvements
Our work on the DRM (Direct Rendering Manager) continues. Being one of our biggest areas of contribution, in this release we once again provided improvements.
In the AMD display driver, we fixed unexpected color results reported by SteamOS/Gamescope users. These were related to incorrect mapping of color values made by the AMD color module when programming some color transformations into the hardware. We also improved the support for newer hardware families by exposing missing plane color blocks.
Further, we provided many assorted patches to do various cleanups in the TTM layer and multiple small (but important!) fixes in the AMD, Intel and v3d drivers, as well as a fix for the framebuffer probing on the Valve Steam Deck.
New BPF helpers for sched_ext schedulers
For the past couple of years, we’ve been consistently contributing to sched_ext and, in particular, to the scx_lavd scheduler to enhance the gaming experience in Linux, improving the latency and interactivity under gaming workloads.
In this release, we introduced a set of BPF helper APIs –bpf_in_nmi(), bpf_in_hardirq(), bpf_in_serving_softirq(), and bpf_in_task() – along with their corresponding self-tests. These helpers allow BPF programs to precisely detect their execution context. This capability is particularly valuable for sched_ext schedulers; for instance, a BPF scheduler like scx_lavd can now distinguish whether a task was woken up by another process or via an interrupt, enabling more informed scheduling decisions.
Small fixes to RPi pmdomain and vc4 fixes for RPi 3
In our ongoing effort to improve Raspberry Pi devices, we addressed several issues related to the RPi 4 power domain, fixing system hangs during power transitions and correcting a broken reset status read. Additionally, on the RPi 3, we resolved a couple of memory leaks, race conditions, and PM reference imbalances, improving overall reliability for RPi users.
Assorted bug fixes and maintainability improvements
As usual, we helped with the never-ending task of fixing bugs, this time clearing up a few of them in the Bluetooth stack and the DRM TTM.
We determined the root cause of two race conditions in the thermal subsystem’s core that could potentially cause a system crash, and developed synthetic reproducers for it. Even though the approach selected to address the issue was not our proposed fix, we contributed to its code review and testing with our specific understanding of the issue and synthetic reproducers, improving the overall quality of the fix.
Another important and often overlooked type of contribution is the refactoring of code to make it more maintainable. In this case, by replacing deprecated APIs and legacy macros. We submitted some patches to do this kind of update in parts of the DRM subsystem and the v3d driver.
Other
As with every release, we helped with assorted janitor tasks such as documentation fixes and cleanups — specifically improving the exportfs and DRM documentation — as well as the usual share of reviews and tests.
Authored (52)
Alberto Garcia
André Almeida
- exportfs: Fix kernel-doc output for get_name()
- exportfs: Mark struct export_operations functions at kernel-doc
- exportfs: Complete kernel-doc for struct export_operations
- docs: exportfs: Use source code struct documentation
Changwoo Min
- selftests/bpf: Introduce execution context detection helpers
- selftests/bpf: Add tests for execution context helpers
- selftests/bpf: Make bpf get_preempt_count() work for v6.14+ kernels
- PM: EM: Fix NULL pointer dereference when perf domain ID is not found
- sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU
Heitor Alves de Siqueira
- Bluetooth: purge error queues in socket destructors
- usb: usbtmc: Flush anchored URBs in usbtmc_release
Helen Koike
- Bluetooth: L2CAP: Fix null-ptr-deref on l2cap_sock_ready_cb
- ext4: reject mount if bigalloc with s_first_data_block != 0
Maíra Canal
- drm/v3d: Consolidate CPU job validation in a function
- drm/v3d: Convert v3d logging to device-based DRM helpers
- pmdomain: bcm: bcm2835-power: Fix broken reset status read
- pmdomain: bcm: bcm2835-power: Increase ASB control timeout
- drm/vc4: Release runtime PM reference after binding V3D
- drm/vc4: Fix memory leak of BO array in hang state
- drm/vc4: Fix a memory leak in hang state error path
- drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock
Melissa Wen
- drm/amd/display: fix wrong color value mapping on MCM shaper LUT
- drm/amd/display: extend delta clamping logic to CM3 LUT helper
- drm/amd/display: remove assert around dpp_base replacement
- drm/amd/display: expose plane blend LUT in HW with MCM
Rodrigo Siqueira
- drm/amdgpu: Expand kernel-doc in amdgpu_ring
- Documentation/gpu: Add new glossary entries from UMR
- Documentation/gpu: Expand generic block information
- Documentation/gpu: Add more information about GC
- Documentation/gpu: Add documentation about ring buffer
Thadeu Lima de Souza Cascardo
- fpga: dfl: use subsys_initcall to allow built-in drivers to be added
- drm/ttm: Fix bo resource use-after-free
Tvrtko Ursulin
- drm/panic: Report invalid or unsupported panic modes
- drm/ttm: Make ttm_bo_init_validate safe against ttm_operation_ctx re-ordering
- drm/ttm: Resource cannot be NULL in ttm_resource_intersects
- drm/ttm: Tidy ttm_operation_ctx initialization
- drm/ttm: Tidy usage of local variables a little bit
- drm/i915/display: Detect AuxCCS support via display parent interface
- efi: sysfb_efi: Replace open coded swap with the macro
- efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks
- efi: sysfb_efi: Convert swap width and height quirk to a callback
- efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck
- drm/syncobj: Convert syncobj idr to xarray
- drm/xe: Fix ggtt fb alignment
- drm/amdgpu/mes: Remove idr leftovers v2
- drm/amdgpu: Simplify sorting of the bo list
- drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl
- drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings
- drm/ttm: Fix ttm_pool_beneficial_order() return type
- drm/amdgpu/userq: Consolidate wait ioctl exit path
- drm/syncobj: Fix xa_alloc allocation flags
Reviewed (29)
Christian Gmeiner
- drm/etnaviv: Add command stream definitions required for a PPU flop reset
- drm/etnaviv: move some functions to a header to be able to use them externally
- drm/etnaviv: Add a new function to emit a series of states to cmd stream
- drm/etnaviv: Add PPU flop reset
- drm/etnaviv: Add module parameter to force PPU flop reset
Gavin Guo
Iago Toral Quiroga
- drm/v3d: Consolidate CPU job validation in a function
- drm/v3d: Convert v3d logging to device-based DRM helpers
Mauricio Faria de Oliveira
Maíra Canal
- drm/gem: Add huge tmpfs mountpoint helpers
- drm/v3d: Use huge tmpfs mountpoint helpers
- drm/gem: Get rid of *_with_mnt helpers
- Documentation/gpu/drm-mm: Add THP paragraph to GEM mapping section
Melissa Wen
- drm/amd/display: Use mpc.preblend flag to indicate 3D LUT
- drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT
- drm/amdgpu: Fix kernel-doc comments for some LUT properties
- drm/amd/display: Fix gamma 2.2 colorop TFs
- drm/vc4: Release runtime PM reference after binding V3D
- drm/vc4: Fix memory leak of BO array in hang state
- drm/vc4: Fix a memory leak in hang state error path
- drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock
Rodrigo Siqueira
Thadeu Lima de Souza Cascardo
- drm/ttm: Resource cannot be NULL in ttm_resource_intersects
- drm/ttm: Tidy usage of local variables a little bit
Tvrtko Ursulin
- dma-buf/selftests: drop the mock_wait implementation
- drm/panic: Ensure drm_panic_type is initialized to a valid value
- drm/panic: Fix expected string for QR_CODE in drm_panic_type_map
- drm/ttm: Fix bo resource use-after-free
- drm/i915/gem: Drop check for changed VM in EXECBUF
Tested (6)
Helen Koike
Mauricio Faria de Oliveira
Melissa Wen
- efi: sysfb_efi: Replace open coded swap with the macro
- efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks
- efi: sysfb_efi: Convert swap width and height quirk to a callback
- efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck
Acked (4)
Thadeu Lima de Souza Cascardo
- drm/ttm: Make ttm_bo_init_validate safe against ttm_operation_ctx re-ordering
- drm/ttm: Tidy ttm_operation_ctx initialization
- char: misc: Use IS_ERR() for filp_open() return value
Tvrtko Ursulin
Maintainer SoB (6)
Christian Gmeiner
- drm/etnaviv: Add command stream definitions required for a PPU flop reset
- drm/etnaviv: move some functions to a header to be able to use them externally
- drm/etnaviv: Add a new function to emit a series of states to cmd stream
- drm/etnaviv: Add PPU flop reset
- drm/etnaviv: Add module parameter to force PPU flop reset