Linux 6.19-rc5 Lands Critical Rust Binder Fix and Intel Nova Lake S Support
#Rust

Linux 6.19-rc5 Lands Critical Rust Binder Fix and Intel Nova Lake S Support

Hardware Reporter
2 min read

The latest char/misc pull for Linux 6.19-rc5 resolves a critical deadlock in the Rust Binder driver while adding Intel Nova Lake Point S compatibility to the MEI driver.

The Linux kernel development cycle advances with significant driver updates in the char/misc subsystem pull request merged ahead of the Linux 6.19-rc5 release. Two critical changes headline this update: a stability fix for the recently introduced Rust Binder driver and expanded hardware support for upcoming Intel processors.

LINUX KERNEL

Rust Binder Driver Stability Patch

Google's Rust-based Binder driver, which debuted in Linux 6.18 as a memory-safe alternative to Android's C-based IPC mechanism, received a crucial fix addressing a deadlock scenario. The vulnerability arose during the forward-porting process to Linux 6.18 when maintainers overlooked implications of commit fb56fdf8b9a2 ("mm/list_lru: split the lock to per-cgroup scope"). Alice Ryhl of Google identified the oversight, noting:

"This leads to crashes like the following: WARNING: possible recursive locking detected... May be due to missing lock nesting notation"

The specific crash manifested when the kernel's kswapd0 memory management thread attempted to acquire the same lock twice, creating a deadlock scenario during shrinker callback execution. System logs revealed three simultaneous lock holdings:

  1. FS reclaim lock
  2. List LRU lock
  3. RCU read lock

The resolution required modifying rust_shrink_free_page() by removing a single spin_lock() call - eliminating the recursive locking scenario. This marks the second significant fix for the nascent Rust Binder implementation following its initial CVE disclosure. The patch is designated for backporting to stable Linux 6.19 branches, underscoring its critical nature for Android-based systems leveraging Rust's memory safety guarantees.

Intel MEI Expands for Nova Lake S

Concurrently, Intel's Management Engine Interface (MEI) driver adds support for the forthcoming Nova Lake Point S platform via device ID 0xAB30. This low-level hardware interface enables communication between the host CPU and Intel's embedded management processors. The addition follows Intel's standard hardware enablement pattern:

Processor Generation Device ID Kernel Version
Nova Lake Point S 0xAB30 Linux 6.19
Meteor Lake 0x7A30 Linux 6.4
Raptor Lake 0x7A68 Linux 6.0

Unlike the Rust Binder modification, the MEI update carries minimal regression risk as it solely introduces a new PCI identifier without altering existing driver logic. This allows safe integration even during the late RC phase of kernel development.

Architectural Implications

These updates highlight contrasting aspects of kernel maintenance:

  1. Rust Integration: The Binder fix demonstrates ongoing refinement of Rust's in-kernel implementation, particularly around concurrency primitives. Developers must still navigate low-level synchronization challenges despite Rust's ownership model when interacting with core kernel subsystems.
  2. Hardware Enablement: Intel's consistent device ID approach enables frictionless hardware support expansion. The MEI driver's architecture exemplifies how abstracted interfaces simplify adding new silicon revisions.

Both changes are slated for public testing in Linux 6.19-rc5, with final inclusion in the mainline kernel expected within weeks. Kernel configuration details are documented in the char/misc subsystem while ongoing Rust-for-Linux development occurs through the project's GitHub repository.

Comments

Loading comments...