The Rust Invasion: Linux Kernel 6.17 Sees Major Rust Code Additions for Drivers & Infrastructure
In the ongoing development of Linux 6.17, the volume of Rust code and the number of associated abstractions continue to grow. As with recent releases, Rust is steadily establishing itself within the kernel as an alternative to C for drivers and infrastructure modules. This week, Miguel Ojeda submitted the main batch of Rust-related changes for 6.17, while additional patches continue to arrive through the driver core and other subsystems.
The 6.17 set includes extended Clippy lint checks, expanded use of Rust crates within the kernel, and updates to the MAINTAINERS file. A new bug
module with the warn_on!
macro has been added to the kernel crate, alongside deferred task handling in the workqueue, and new bit
and genmask
functions in the bits
module. Other parts of the infrastructure have also been improved. Notably, the pin-init
subsystem has seen several valuable enhancements.
Changes through the driver core branch, which has increasingly involved Rust, include the introduction of the CoreInternal
device context and new language abstractions that simplify writing drivers in Rust. It is now possible to define ACPI device identifiers and driver matching tables directly in Rust code. Enhancements to DMA handling, extended I/O wrappers, and other safety layers for working with low-level interfaces have also been introduced.
Some Rust-related improvements are arriving via other subsystems as well. For example, in DRM, work continues on the open-source NVIDIA driver NOVA, which is being developed in Rust. Overall, we are at the midpoint of the two-week merge window for Linux 6.17, and while a significant portion of Rust-related additions has already been accepted, patch streams are still actively flowing.
Further details on specific patches and discussions can be found in the corresponding pull requests submitted this week.