Skip to content

Commit 1d54db7

Browse files
gregkhopsiff
authored andcommitted
Revert "driver core: enforce device_lock for driver_match_device()"
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 <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 a7fa9460b86f810913b6779461d0448e7c11214c) Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
1 parent b2a6a5c commit 1d54db7

File tree

3 files changed

+2
-11
lines changed

3 files changed

+2
-11
lines changed

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(const 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(const 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
@@ -1168,7 +1168,7 @@ static int __driver_attach(struct device *dev, void *data)
11681168
* is an error.
11691169
*/
11701170

1171-
ret = driver_match_device_locked(drv, dev);
1171+
ret = driver_match_device(drv, dev);
11721172
if (ret == 0) {
11731173
/* no match */
11741174
return 0;

0 commit comments

Comments
 (0)