Message ID | 1585232950-123704-1-git-send-email-zhangliguang@linux.alibaba.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | ACPI / CPPC: clean up acpi_get_psd_map | expand |
On Thu, Mar 26, 2020 at 3:29 PM luanshi <zhangliguang@linux.alibaba.com> wrote: > > This patch cleans up acpi_get_psd_map function. If got here, > variable all_cpu_data[] can't be NULL. Variable match_cpc_ptr has been > checked before, no need check again at the end of the funchtion. Then > some code logic should be optimized. > > Signed-off-by: Liguang Zhang <zhangliguang@linux.alibaba.com> > --- > drivers/acpi/cppc_acpi.c | 33 +++++++-------------------------- > 1 file changed, 7 insertions(+), 26 deletions(-) > > diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c > index a1a858a..8b2e89c 100644 > --- a/drivers/acpi/cppc_acpi.c > +++ b/drivers/acpi/cppc_acpi.c > @@ -438,13 +438,10 @@ int acpi_get_psd_map(struct cppc_cpudata **all_cpu_data) > * domain info. > */ > for_each_possible_cpu(i) { > - pr = all_cpu_data[i]; > - if (!pr) > - continue; > - > if (cpumask_test_cpu(i, covered_cpus)) > continue; > > + pr = all_cpu_data[i]; > cpc_ptr = per_cpu(cpc_desc_ptr, i); > if (!cpc_ptr) { > retval = -EFAULT; > @@ -495,44 +492,28 @@ int acpi_get_psd_map(struct cppc_cpudata **all_cpu_data) > cpumask_set_cpu(j, pr->shared_cpu_map); > } > > - for_each_possible_cpu(j) { > + for_each_cpu(j, pr->shared_cpu_map) { > if (i == j) > continue; > > match_pr = all_cpu_data[j]; > - if (!match_pr) > - continue; > - > - match_cpc_ptr = per_cpu(cpc_desc_ptr, j); > - if (!match_cpc_ptr) { > - retval = -EFAULT; > - goto err_ret; > - } > - > - match_pdomain = &(match_cpc_ptr->domain_info); > - if (match_pdomain->domain != pdomain->domain) > - continue; > - > match_pr->shared_type = pr->shared_type; > cpumask_copy(match_pr->shared_cpu_map, > pr->shared_cpu_map); > } > } > + goto out; > > err_ret: > for_each_possible_cpu(i) { > pr = all_cpu_data[i]; > - if (!pr) > - continue; > > /* Assume no coordination on any error parsing domain info */ > - if (retval) { > - cpumask_clear(pr->shared_cpu_map); > - cpumask_set_cpu(i, pr->shared_cpu_map); > - pr->shared_type = CPUFREQ_SHARED_TYPE_ALL; > - } > + cpumask_clear(pr->shared_cpu_map); > + cpumask_set_cpu(i, pr->shared_cpu_map); > + pr->shared_type = CPUFREQ_SHARED_TYPE_ALL; > } > - > +out: > free_cpumask_var(covered_cpus); > return retval; > } > -- Applied as 5.7 material with some changes in the changelog and subject, thanks!
diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c index a1a858a..8b2e89c 100644 --- a/drivers/acpi/cppc_acpi.c +++ b/drivers/acpi/cppc_acpi.c @@ -438,13 +438,10 @@ int acpi_get_psd_map(struct cppc_cpudata **all_cpu_data) * domain info. */ for_each_possible_cpu(i) { - pr = all_cpu_data[i]; - if (!pr) - continue; - if (cpumask_test_cpu(i, covered_cpus)) continue; + pr = all_cpu_data[i]; cpc_ptr = per_cpu(cpc_desc_ptr, i); if (!cpc_ptr) { retval = -EFAULT; @@ -495,44 +492,28 @@ int acpi_get_psd_map(struct cppc_cpudata **all_cpu_data) cpumask_set_cpu(j, pr->shared_cpu_map); } - for_each_possible_cpu(j) { + for_each_cpu(j, pr->shared_cpu_map) { if (i == j) continue; match_pr = all_cpu_data[j]; - if (!match_pr) - continue; - - match_cpc_ptr = per_cpu(cpc_desc_ptr, j); - if (!match_cpc_ptr) { - retval = -EFAULT; - goto err_ret; - } - - match_pdomain = &(match_cpc_ptr->domain_info); - if (match_pdomain->domain != pdomain->domain) - continue; - match_pr->shared_type = pr->shared_type; cpumask_copy(match_pr->shared_cpu_map, pr->shared_cpu_map); } } + goto out; err_ret: for_each_possible_cpu(i) { pr = all_cpu_data[i]; - if (!pr) - continue; /* Assume no coordination on any error parsing domain info */ - if (retval) { - cpumask_clear(pr->shared_cpu_map); - cpumask_set_cpu(i, pr->shared_cpu_map); - pr->shared_type = CPUFREQ_SHARED_TYPE_ALL; - } + cpumask_clear(pr->shared_cpu_map); + cpumask_set_cpu(i, pr->shared_cpu_map); + pr->shared_type = CPUFREQ_SHARED_TYPE_ALL; } - +out: free_cpumask_var(covered_cpus); return retval; }
This patch cleans up acpi_get_psd_map function. If got here, variable all_cpu_data[] can't be NULL. Variable match_cpc_ptr has been checked before, no need check again at the end of the funchtion. Then some code logic should be optimized. Signed-off-by: Liguang Zhang <zhangliguang@linux.alibaba.com> --- drivers/acpi/cppc_acpi.c | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-)