Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 288889
b: refs/heads/master
c: 8b0372a
h: refs/heads/master
i:
  288887: b468759
v: v3
  • Loading branch information
Greg Kroah-Hartman committed Mar 8, 2012
1 parent 2f78e8b commit ad36d9e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ef8a3fd6e5e12e8989dae97ba5491c2e39369af9
refs/heads/master: 8b0372a258e6bd0e9e5ea3f3d5f05a6bf3972fee
24 changes: 16 additions & 8 deletions trunk/drivers/base/dd.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,10 @@ static void deferred_probe_work_func(struct work_struct *work)

get_device(dev);

/* Drop the mutex while probing each device; the probe path
* may manipulate the deferred list */
/*
* Drop the mutex while probing each device; the probe path may
* manipulate the deferred list
*/
mutex_unlock(&deferred_probe_mutex);
dev_dbg(dev, "Retrying from deferred list\n");
bus_probe_device(dev);
Expand Down Expand Up @@ -126,16 +128,20 @@ static void driver_deferred_probe_trigger(void)
if (!driver_deferred_probe_enable)
return;

/* A successful probe means that all the devices in the pending list
/*
* A successful probe means that all the devices in the pending list
* should be triggered to be reprobed. Move all the deferred devices
* into the active list so they can be retried by the workqueue */
* into the active list so they can be retried by the workqueue
*/
mutex_lock(&deferred_probe_mutex);
list_splice_tail_init(&deferred_probe_pending_list,
&deferred_probe_active_list);
mutex_unlock(&deferred_probe_mutex);

/* Kick the re-probe thread. It may already be scheduled, but
* it is safe to kick it again. */
/*
* Kick the re-probe thread. It may already be scheduled, but it is
* safe to kick it again.
*/
queue_work(deferred_wq, &deferred_probe_work);
}

Expand Down Expand Up @@ -171,8 +177,10 @@ static void driver_bound(struct device *dev)

klist_add_tail(&dev->p->knode_driver, &dev->driver->p->klist_devices);

/* Make sure the device is no longer in one of the deferred lists
* and kick off retrying all pending devices */
/*
* Make sure the device is no longer in one of the deferred lists and
* kick off retrying all pending devices
*/
driver_deferred_probe_del(dev);
driver_deferred_probe_trigger();

Expand Down

0 comments on commit ad36d9e

Please sign in to comment.