From 985f05327f2be2dd3f93c115e131ab34230070ee Mon Sep 17 00:00:00 2001 From: Gaurav Singh Date: Fri, 25 Feb 2022 12:19:45 +0530 Subject: [PATCH] msm_perf: check cpu_possible to improve stability check cpu_possible to improve stability Change-Id: I9ce3b5a5a6b1e846f44ffb9e255cc5b6b701b377 Signed-off-by: Gaurav Singh --- drivers/soc/qcom/msm_performance.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/soc/qcom/msm_performance.c b/drivers/soc/qcom/msm_performance.c index cb0c138da1a6..544c87c70c0e 100644 --- a/drivers/soc/qcom/msm_performance.c +++ b/drivers/soc/qcom/msm_performance.c @@ -204,13 +204,15 @@ static int set_cpu_min_freq(const char *buf, const struct kernel_param *kp) for (i = 0; i < ntokens; i += 2) { if (sscanf(cp, "%u:%u", &cpu, &val) != 2) return -EINVAL; - if (cpu > (num_present_cpus() - 1)) - return -EINVAL; + if (cpu >= nr_cpu_ids) + break; - i_cpu_stats = &per_cpu(msm_perf_cpu_stats, cpu); + if (cpu_possible(cpu)) { + i_cpu_stats = &per_cpu(msm_perf_cpu_stats, cpu); - i_cpu_stats->min = val; - cpumask_set_cpu(cpu, limit_mask_min); + i_cpu_stats->min = val; + cpumask_set_cpu(cpu, limit_mask_min); + } cp = strnchr(cp, strlen(cp), ' '); cp++; @@ -295,13 +297,15 @@ static int set_cpu_max_freq(const char *buf, const struct kernel_param *kp) for (i = 0; i < ntokens; i += 2) { if (sscanf(cp, "%u:%u", &cpu, &val) != 2) return -EINVAL; - if (cpu > (num_present_cpus() - 1)) - return -EINVAL; + if (cpu >= nr_cpu_ids) + break; - i_cpu_stats = &per_cpu(msm_perf_cpu_stats, cpu); + if (cpu_possible(cpu)) { + i_cpu_stats = &per_cpu(msm_perf_cpu_stats, cpu); - i_cpu_stats->max = val; - cpumask_set_cpu(cpu, limit_mask_max); + i_cpu_stats->max = val; + cpumask_set_cpu(cpu, limit_mask_max); + } cp = strnchr(cp, strlen(cp), ' '); cp++;