mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 02:36:21 +00:00
OPP: Improve error handling in dev_pm_opp_of_cpumask_add_table()
The error handling wasn't appropriate in dev_pm_opp_of_cpumask_add_table(). For example it returns 0 on success and also for the case where cpumask is empty or cpu_device wasn't found for any of the CPUs. It should really return error on such cases, so that the callers can be aware of the outcome. Fix it. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
This commit is contained in:
parent
5ed4cecd75
commit
50b6b87c84
@ -614,16 +614,18 @@ EXPORT_SYMBOL_GPL(dev_pm_opp_of_cpumask_remove_table);
|
||||
int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask)
|
||||
{
|
||||
struct device *cpu_dev;
|
||||
int cpu, ret = 0;
|
||||
int cpu, ret;
|
||||
|
||||
WARN_ON(cpumask_empty(cpumask));
|
||||
if (WARN_ON(cpumask_empty(cpumask)))
|
||||
return -ENODEV;
|
||||
|
||||
for_each_cpu(cpu, cpumask) {
|
||||
cpu_dev = get_cpu_device(cpu);
|
||||
if (!cpu_dev) {
|
||||
pr_err("%s: failed to get cpu%d device\n", __func__,
|
||||
cpu);
|
||||
continue;
|
||||
ret = -ENODEV;
|
||||
goto remove_table;
|
||||
}
|
||||
|
||||
ret = dev_pm_opp_of_add_table(cpu_dev);
|
||||
@ -635,12 +637,16 @@ int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask)
|
||||
pr_debug("%s: couldn't find opp table for cpu:%d, %d\n",
|
||||
__func__, cpu, ret);
|
||||
|
||||
/* Free all other OPPs */
|
||||
_dev_pm_opp_cpumask_remove_table(cpumask, cpu);
|
||||
break;
|
||||
goto remove_table;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
remove_table:
|
||||
/* Free all other OPPs */
|
||||
_dev_pm_opp_cpumask_remove_table(cpumask, cpu);
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dev_pm_opp_of_cpumask_add_table);
|
||||
|
Loading…
x
Reference in New Issue
Block a user