From: Greg Kroah-Hartman Date: Mon, 16 Feb 2026 15:43:55 +0000 (+0100) Subject: 6.19-stable patches X-Git-Tag: v6.6.126~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=666f95c803322f8e33c650f9d0a2988739d3300b;p=thirdparty%2Fkernel%2Fstable-queue.git 6.19-stable patches added patches: revert-driver-core-enforce-device_lock-for-driver_match_device.patch --- diff --git a/queue-6.19/revert-driver-core-enforce-device_lock-for-driver_match_device.patch b/queue-6.19/revert-driver-core-enforce-device_lock-for-driver_match_device.patch new file mode 100644 index 0000000000..d6b9bfa2f1 --- /dev/null +++ b/queue-6.19/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 bc82e5f4d7dc8237ae8cabc73aa46fc93c85d98c 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 +@@ -182,18 +182,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 +@@ -1180,7 +1180,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.19/series b/queue-6.19/series index 40eb4524d6..240b6c4f78 100644 --- a/queue-6.19/series +++ b/queue-6.19/series @@ -1 +1,2 @@ scsi-qla2xxx-fix-bsg_done-causing-double-free.patch +revert-driver-core-enforce-device_lock-for-driver_match_device.patch