From ec007fce490e3181b59fa6be7776a9f30bce7cac Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 16 Feb 2026 16:47:48 +0100 Subject: [PATCH] 6.18-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.18/series | 1 + 2 files changed, 73 insertions(+) create mode 100644 queue-6.18/revert-driver-core-enforce-device_lock-for-driver_match_device.patch diff --git a/queue-6.18/revert-driver-core-enforce-device_lock-for-driver_match_device.patch b/queue-6.18/revert-driver-core-enforce-device_lock-for-driver_match_device.patch new file mode 100644 index 0000000000..aa44e258f9 --- /dev/null +++ b/queue-6.18/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 8d76b2488eb3cc0717ab81b60622cff4a5f90f79 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 +@@ -166,18 +166,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 +@@ -1170,7 +1170,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.18/series b/queue-6.18/series index 1c2c0df05a..2c048b5056 100644 --- a/queue-6.18/series +++ b/queue-6.18/series @@ -2,3 +2,4 @@ scsi-qla2xxx-fix-bsg_done-causing-double-free.patch rust-device-fix-broken-intra-doc-links.patch rust-dma-fix-broken-intra-doc-links.patch rust-driver-fix-broken-intra-doc-links-to-example-driver-types.patch +revert-driver-core-enforce-device_lock-for-driver_match_device.patch -- 2.47.3