Skip to content

Commit d5fa1da

Browse files
committed
Merge tag 'driver-core-5.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core fix from Greg KH: "Here is a single driver core fix for 5.12-rc7 to resolve a reported problem that caused some devices to lockup when booting. It has been in linux-next with no reported issues" * tag 'driver-core-5.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: driver core: Fix locking bug in deferred_probe_timeout_work_func()
2 parents 445e09e + eed6e41 commit d5fa1da

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

drivers/base/dd.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,14 +292,16 @@ int driver_deferred_probe_check_state(struct device *dev)
292292

293293
static void deferred_probe_timeout_work_func(struct work_struct *work)
294294
{
295-
struct device_private *private, *p;
295+
struct device_private *p;
296296

297297
driver_deferred_probe_timeout = 0;
298298
driver_deferred_probe_trigger();
299299
flush_work(&deferred_probe_work);
300300

301-
list_for_each_entry_safe(private, p, &deferred_probe_pending_list, deferred_probe)
302-
dev_info(private->device, "deferred probe pending\n");
301+
mutex_lock(&deferred_probe_mutex);
302+
list_for_each_entry(p, &deferred_probe_pending_list, deferred_probe)
303+
dev_info(p->device, "deferred probe pending\n");
304+
mutex_unlock(&deferred_probe_mutex);
303305
wake_up_all(&probe_timeout_waitqueue);
304306
}
305307
static DECLARE_DELAYED_WORK(deferred_probe_timeout_work, deferred_probe_timeout_work_func);

0 commit comments

Comments
 (0)