[GIT PULL] Driver core fixes for 6.19-rc7

From: Danilo Krummrich

Date: Sat Jan 24 2026 - 09:06:11 EST


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/20260113162843.12712-1-hanguidong02@xxxxxxxxx
[2] https://patch.msgid.link/20260121141215.29658-1-dakr@xxxxxxxxxx

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(-)