Skip to content

Commit f1eedf4

Browse files
gregkhopsiff
authored andcommitted
Revert "driver core: enforce device_lock for driver_match_device()"
This reverts commit adc1796eced46b48e23ec200a219d635f33a38ee which is commit dc23806 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 <dakr@kernel.org> Cc: Rafael J. Wysocki (Intel) <rafael@kernel.org> Cc: Danilo Krummrich <dakr@kernel.org> Cc: Gui-Dong Han <hanguidong02@gmail.com> Cc: Qiu-ji Chen <chenqiuji666@gmail.com> Reported-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/7dfd0e63-a725-4fac-b2a0-f2e621d99d1b@sirena.org.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 673dafb9a86349a12a93151fd467625614dc7e12) Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
1 parent 5a9c545 commit f1eedf4

3 files changed

Lines changed: 2 additions & 11 deletions

File tree

drivers/base/base.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -165,18 +165,9 @@ void device_set_deferred_probe_reason(const struct device *dev, struct va_format
165165
static inline int driver_match_device(struct device_driver *drv,
166166
struct device *dev)
167167
{
168-
device_lock_assert(dev);
169-
170168
return drv->bus->match ? drv->bus->match(dev, drv) : 1;
171169
}
172170

173-
static inline int driver_match_device_locked(struct device_driver *drv,
174-
struct device *dev)
175-
{
176-
guard(device)(dev);
177-
return driver_match_device(drv, dev);
178-
}
179-
180171
static inline void dev_sync_state(struct device *dev)
181172
{
182173
if (dev->bus->sync_state)

drivers/base/bus.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ static ssize_t bind_store(struct device_driver *drv, const char *buf,
263263
int err = -ENODEV;
264264

265265
dev = bus_find_device_by_name(bus, NULL, buf);
266-
if (dev && driver_match_device_locked(drv, dev)) {
266+
if (dev && driver_match_device(drv, dev)) {
267267
err = device_driver_attach(drv, dev);
268268
if (!err) {
269269
/* success */

drivers/base/dd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1171,7 +1171,7 @@ static int __driver_attach(struct device *dev, void *data)
11711171
* is an error.
11721172
*/
11731173

1174-
ret = driver_match_device_locked(drv, dev);
1174+
ret = driver_match_device(drv, dev);
11751175
if (ret == 0) {
11761176
/* no match */
11771177
return 0;

0 commit comments

Comments
 (0)