[PATCH 0/3] driver core: generalize driver_override infrastructure

From: Danilo Krummrich

Date: Sun Mar 01 2026 - 19:28:01 EST


Currently, there are 12 busses (including platform and PCI) that duplicate the
driver_override logic for their individual devices.

All of them seem to be prone to the bug described in [1].

While this could be solved for every bus individually using a separate lock,
solving this in the driver-core generically results in less (and cleaner)
changes overall.

Thus, move driver_override to struct device, provide corresponding accessors for
busses and handle locking with a separate lock internally.

In particular, add device_set_driver_override(), device_has_driver_override(),
device_match_driver_override() and a helper, DEVICE_ATTR_DRIVER_OVERRIDE(), to
declare the corresponding sysfs store() and show() callbacks.

Until all busses have migrated, keep driver_set_override() in place.

Note that we can't use the device lock for the reasons described in [2].

This patch series includes the migration of the platform bus; patches for all
other affected busses still need to be extracted as a follow-up of the WIP
treewide patch in [3].

[1] https://bugzilla.kernel.org/show_bug.cgi?id=220789
[2] https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@xxxxxxxxxx/
[3] https://git.kernel.org/pub/scm/linux/kernel/git/dakr/linux.git/log/?h=driver_override

Danilo Krummrich (3):
driver core: generalize driver_override in struct device
hwmon: axi-fan: don't use driver_override as IRQ name
driver core: platform: use generic driver_override infrastructure

arch/sh/drivers/platform_early.c | 6 ++-
drivers/base/core.c | 2 +
drivers/base/dd.c | 60 +++++++++++++++++++++++
drivers/base/platform.c | 35 ++------------
drivers/bus/simple-pm-bus.c | 4 +-
drivers/clk/imx/clk-scu.c | 3 +-
drivers/hwmon/axi-fan-control.c | 2 +-
drivers/slimbus/qcom-ngd-ctrl.c | 6 +--
include/linux/device.h | 81 ++++++++++++++++++++++++++++++++
include/linux/platform_device.h | 5 --
sound/soc/samsung/i2s.c | 6 +--
11 files changed, 161 insertions(+), 49 deletions(-)


base-commit: 78437ab3b769f80526416570f60173c89858dd84
--
2.53.0