@@ -584,7 +584,6 @@ struct devfreq *devfreq_add_device(struct device *dev,
}
mutex_init(&devfreq->lock);
- mutex_lock(&devfreq->lock);
devfreq->dev.parent = dev;
devfreq->dev.class = devfreq_class;
devfreq->dev.release = devfreq_dev_release;
@@ -596,16 +595,13 @@ struct devfreq *devfreq_add_device(struct device *dev,
devfreq->nb.notifier_call = devfreq_notifier_call;
if (!devfreq->profile->max_state && !devfreq->profile->freq_table) {
- mutex_unlock(&devfreq->lock);
err = set_freq_table(devfreq);
if (err < 0)
goto err_dev;
- mutex_lock(&devfreq->lock);
}
devfreq->min_freq = find_available_min_freq(devfreq);
if (!devfreq->min_freq) {
- mutex_unlock(&devfreq->lock);
err = -EINVAL;
goto err_dev;
}
@@ -613,7 +609,6 @@ struct devfreq *devfreq_add_device(struct device *dev,
devfreq->max_freq = find_available_max_freq(devfreq);
if (!devfreq->max_freq) {
- mutex_unlock(&devfreq->lock);
err = -EINVAL;
goto err_dev;
}
@@ -635,12 +630,9 @@ struct devfreq *devfreq_add_device(struct device *dev,
atomic_inc_return(&devfreq_no));
err = device_register(&devfreq->dev);
if (err) {
- mutex_unlock(&devfreq->lock);
goto err_dev;
}
- mutex_unlock(&devfreq->lock);
-
mutex_lock(&devfreq_list_lock);
list_add(&devfreq->node, &devfreq_list);
The devfreq lock is used to prevent concurrent access to the devfreq object, but as all operations leading up to the registration of the devfreq device are local to devfreq_add_device() there's no reason to hold the lock. Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> --- drivers/devfreq/devfreq.c | 8 -------- 1 file changed, 8 deletions(-) -- 2.16.2