Skip to contentSkip to conversation

Driver core fixes for 6.19-rc7

GIT PULL Merged Danilo Krummrich 2 participants 2 messages Jan 24

Subsystems (2)
lore
Share & tools
lore

Danilo Krummrich

author maintainer
#0 lore raw

Hi Linus,

Please pull these driver-core fixes.

All commits have been in linux-next for a couple rounds; no conflicts expected.

I held back two fixes [1, 2] originally intended for -rc7. Patch [1] uncovered potential deadlocks that require a few driver fixes; [2] is one such fix.

Given how late we are in the cycle, I want to give these more time in linux-next to ensure we have identified all affected drivers. Expect to see these in the upcoming -rc1 pull request.

- Danilo

[1] https://patch.msgid.link/[email protected]
[2] https://patch.msgid.link/[email protected]

The following changes since commit 0f61b1860cc3f52aef9036d7235ed1f017632193:

Linux 6.19-rc5 (2026-01-11 17:03:14 -1000)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git tags/driver-core-6.19-rc7

for you to fetch changes up to a995fe1a3aa78b7d06cc1cc7b6b8436c5e93b07f:

rust: driver: drop device private data post unbind (2026-01-16 01:17:29 +0100)

----------------------------------------------------------------
Driver core fixes for 6.19-rc7

- Always inline I/O and IRQ methods using build_assert!() to avoid false positive build errors.

- Do not free the driver's device private data in I2C shutdown() avoiding race conditions that can lead to UAF bugs.

- Drop the driver's device private data after the driver has been fully unbound from its device to avoid UAF bugs from &Device<Bound> scopes, such as IRQ callbacks.

----------------------------------------------------------------
Alexandre Courbot (2):
rust: io: always inline functions using build_assert with arguments
rust: irq: always inline functions using build_assert with arguments

Danilo Krummrich (6):
rust: i2c: do not drop device private data on shutdown()
rust: auxiliary: add Driver::unbind() callback
rust: driver: introduce a DriverLayout trait
rust: driver: add DEVICE_DRIVER_OFFSET to the DriverLayout trait
rust: driver: add DriverData type to the DriverLayout trait
rust: driver: drop device private data post unbind

 drivers/base/dd.c             |  2 ++
 include/linux/device/driver.h |  9 +++++++++
 rust/kernel/auxiliary.rs      | 41 +++++++++++++++++++++++++++++++++--------
 rust/kernel/device.rs         | 20 +++++++++++---------
 rust/kernel/driver.rs         | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
 rust/kernel/i2c.rs            | 31 ++++++++++++++++++++-----------
 rust/kernel/io.rs             |  9 ++++++---
 rust/kernel/io/resource.rs    |  2 ++
 rust/kernel/irq/flags.rs      |  2 ++
 rust/kernel/pci.rs            | 27 ++++++++++++++++++---------
 rust/kernel/platform.rs       | 27 ++++++++++++++++++---------
 rust/kernel/usb.rs            | 27 ++++++++++++++++++---------
 12 files changed, 209 insertions(+), 74 deletions(-)
merge bot Merged
#1 lore raw
The pull request you sent on Sat, 24 Jan 2026 15:05:54 +0100:

The pull request you sent on Sat, 24 Jan 2026 15:05:54 +0100:

Quoted 1 line

git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git tags/driver-core-6.19-rc7

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/5dbeeb268b63ea2d9795b3e5e8ffb48c236f5bb0

Thank you!

Signature · 2 lines
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html