[PATCH 4/6] PM / devfreq: Remove unnecessary locking

From: Bjorn Andersson
Date: Tue Apr 24 2018 - 18:36:33 EST


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@xxxxxxxxxx>
---
drivers/devfreq/devfreq.c | 8 --------
1 file changed, 8 deletions(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 2e50f5d9d92a..70588dc2032c 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -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);

--
2.16.2