From: Greg Kroah-Hartman Date: Mon, 16 Feb 2026 15:47:30 +0000 (+0100) Subject: 6.6-stable patches X-Git-Tag: v6.6.126~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b3d67404ad7483974e388c714026d6710865599f;p=thirdparty%2Fkernel%2Fstable-queue.git 6.6-stable patches added patches: revert-driver-core-enforce-device_lock-for-driver_match_device.patch --- diff --git a/queue-6.6/revert-driver-core-enforce-device_lock-for-driver_match_device.patch b/queue-6.6/revert-driver-core-enforce-device_lock-for-driver_match_device.patch new file mode 100644 index 0000000000..6a1277cb74 --- /dev/null +++ b/queue-6.6/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 adc1796eced46b48e23ec200a219d635f33a38ee 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(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(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 +@@ -1169,7 +1169,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.6/series b/queue-6.6/series index 40aa01ad23..14baaa7bf9 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -3,3 +3,4 @@ pci-endpoint-remove-unused-field-in-struct-pci_epf_group.patch pci-endpoint-avoid-creating-sub-groups-asynchronously.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