Skip to content

Commit a7fa946

Browse files
committed
Revert "driver core: enforce device_lock for driver_match_device()"
This reverts commit cd0e0a7 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>
1 parent 19b3cac commit a7fa946

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(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)