From 43383b24941a201ba491a506e1e333823bb127d2 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 16 Feb 2026 16:47:39 +0100 Subject: [PATCH] 6.12-stable patches added patches: revert-driver-core-enforce-device_lock-for-driver_match_device.patch --- ...-device_lock-for-driver_match_device.patch | 72 +++++++++++++++++++ queue-6.12/series | 1 + 2 files changed, 73 insertions(+) create mode 100644 queue-6.12/revert-driver-core-enforce-device_lock-for-driver_match_device.patch diff --git a/queue-6.12/revert-driver-core-enforce-device_lock-for-driver_match_device.patch b/queue-6.12/revert-driver-core-enforce-device_lock-for-driver_match_device.patch new file mode 100644 index 0000000000..52231d91ac --- /dev/null +++ b/queue-6.12/revert-driver-core-enforce-device_lock-for-driver_match_device.patch @@ -0,0 +1,72 @@ +From b8819cb8faec938fa3e3b0023e1839ee52d3af32 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 16 Feb 2026 16:41:21 +0100 +Subject: Revert "driver core: enforce device_lock for driver_match_device()" + +From: Greg Kroah-Hartman + +This reverts commit cd0e0a76e40c2e77bcfc88291d00dca22b00158e which is +commit dc23806a7c47ec5f1293aba407fb69519f976ee0 upstream. + +It causes boot regressions on some systems as all of the "fixes" for +drivers are not properly backported yet. Once that is completed, only +then can this be applied, if really necessary given the potential for +explosions, perhaps we might want to wait a few -rc releases first... + +Cc: Danilo Krummrich +Cc: Rafael J. Wysocki (Intel) +Cc: Danilo Krummrich +Cc: Gui-Dong Han +Cc: Qiu-ji Chen +Reported-by: Mark Brown +Link: https://lore.kernel.org/r/7dfd0e63-a725-4fac-b2a0-f2e621d99d1b@sirena.org.uk +Signed-off-by: Greg Kroah-Hartman +--- + drivers/base/base.h | 9 --------- + drivers/base/bus.c | 2 +- + drivers/base/dd.c | 2 +- + 3 files changed, 2 insertions(+), 11 deletions(-) + +--- a/drivers/base/base.h ++++ b/drivers/base/base.h +@@ -165,18 +165,9 @@ void device_set_deferred_probe_reason(co + static inline int driver_match_device(const struct device_driver *drv, + struct device *dev) + { +- device_lock_assert(dev); +- + return drv->bus->match ? drv->bus->match(dev, drv) : 1; + } + +-static inline int driver_match_device_locked(const struct device_driver *drv, +- struct device *dev) +-{ +- guard(device)(dev); +- return driver_match_device(drv, dev); +-} +- + static inline void dev_sync_state(struct device *dev) + { + if (dev->bus->sync_state) +--- a/drivers/base/bus.c ++++ b/drivers/base/bus.c +@@ -263,7 +263,7 @@ static ssize_t bind_store(struct device_ + int err = -ENODEV; + + dev = bus_find_device_by_name(bus, NULL, buf); +- if (dev && driver_match_device_locked(drv, dev)) { ++ if (dev && driver_match_device(drv, dev)) { + err = device_driver_attach(drv, dev); + if (!err) { + /* success */ +--- a/drivers/base/dd.c ++++ b/drivers/base/dd.c +@@ -1168,7 +1168,7 @@ static int __driver_attach(struct device + * is an error. + */ + +- ret = driver_match_device_locked(drv, dev); ++ ret = driver_match_device(drv, dev); + if (ret == 0) { + /* no match */ + return 0; diff --git a/queue-6.12/series b/queue-6.12/series index 2fbca806bc..ce3ae5389d 100644 --- a/queue-6.12/series +++ b/queue-6.12/series @@ -3,3 +3,4 @@ bnxt_en-change-fw-message-timeout-warning.patch bnxt_en-hide-config_detect_hung_task-specific-code.patch bus-fsl-mc-replace-snprintf-and-sprintf-with-sysfs_emit-in-sysfs-show-functions.patch bus-fsl-mc-fix-use-after-free-in-driver_override_show.patch +revert-driver-core-enforce-device_lock-for-driver_match_device.patch -- 2.47.3