[PATCH v4 2/4] devfreq: Use mutex guard in devfreq_add/remove_governor()
Jie Zhan <[email protected]>
| Newsgroups | org.kernel.vger.linux-pm,org.infradead.lists.linux-arm-kernel |
|---|---|
| Message-ID | <[email protected]> |
Use mutex guard in devfreq_add/remove_governor() so as to simplify the locking logic. No functional impact intended. Reviewed-by: Yaxiong Tian <[email protected]> Signed-off-by: Jie Zhan <[email protected]> --- drivers/devfreq/devfreq.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 7a70dd051644..53c40d795a13 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -1261,28 +1261,23 @@ void devfreq_resume(void) int devfreq_add_governor(struct devfreq_governor *governor) { struct devfreq_governor *g; - int err = 0; if (!governor) { pr_err("%s: Invalid parameters.\n", __func__); return -EINVAL; } - mutex_lock(&devfreq_list_lock); + guard(mutex)(&devfreq_list_lock); g = find_devfreq_governor(governor->name); if (!IS_ERR(g)) { pr_err("%s: governor %s already registered\n", __func__, g->name); - err = -EINVAL; - goto err_out; + return -EINVAL; } list_add(&governor->node, &devfreq_governor_list); -err_out: - mutex_unlock(&devfreq_list_lock); - - return err; + return 0; } EXPORT_SYMBOL(devfreq_add_governor); @@ -1320,21 +1315,20 @@ int devfreq_remove_governor(struct devfreq_governor *governor) { struct devfreq_governor *g; struct devfreq *devfreq; - int err = 0; if (!governor) { pr_err("%s: Invalid parameters.\n", __func__); return -EINVAL; } - mutex_lock(&devfreq_list_lock); + guard(mutex)(&devfreq_list_lock); g = find_devfreq_governor(governor->name); if (IS_ERR(g)) { pr_err("%s: governor %s not registered\n", __func__, governor->name); - err = PTR_ERR(g); - goto err_out; + return PTR_ERR(g); } + list_for_each_entry(devfreq, &devfreq_list, node) { int ret; struct device *dev = devfreq->dev.parent; @@ -1356,10 +1350,8 @@ int devfreq_remove_governor(struct devfreq_governor *governor) } list_del(&governor->node); -err_out: - mutex_unlock(&devfreq_list_lock); - return err; + return 0; } EXPORT_SYMBOL(devfreq_remove_governor); -- 2.43.0