Message ID | 20220825114018.1715-1-xuewen.yan@unisoc.com |
---|---|
State | Accepted |
Commit | cff895277c8558221ba180aefe26799dcb4eec86 |
Headers | show |
Series | thermal: Check the policy first in cpufreq_cooling_register | expand |
Hi all, Any comments? On Thu, Aug 25, 2022 at 7:42 PM Xuewen Yan <xuewen.yan@unisoc.com> wrote: > > Since the policy needs to be accessed first when obtaining cpu devices, > first check whether the policy is legal before this. > > Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com> > --- > drivers/thermal/cpufreq_cooling.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c > index b76293cc989c..7838b6e2dba5 100644 > --- a/drivers/thermal/cpufreq_cooling.c > +++ b/drivers/thermal/cpufreq_cooling.c > @@ -501,17 +501,17 @@ __cpufreq_cooling_register(struct device_node *np, > struct thermal_cooling_device_ops *cooling_ops; > char *name; > > + if (IS_ERR_OR_NULL(policy)) { > + pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); > + return ERR_PTR(-EINVAL); > + } > + > dev = get_cpu_device(policy->cpu); > if (unlikely(!dev)) { > pr_warn("No cpu device for cpu %d\n", policy->cpu); > return ERR_PTR(-ENODEV); > } > > - if (IS_ERR_OR_NULL(policy)) { > - pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); > - return ERR_PTR(-EINVAL); > - } > - > i = cpufreq_table_count_valid_entries(policy); > if (!i) { > pr_debug("%s: CPUFreq table not found or has no valid entries\n", > -- > 2.25.1 > THanks!
On 25-08-22, 19:40, Xuewen Yan wrote: > Since the policy needs to be accessed first when obtaining cpu devices, > first check whether the policy is legal before this. > > Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com> Fixes: 5130802ddbb1 ("thermal: cpu_cooling: Switch to QoS requests for freq limits") > --- > drivers/thermal/cpufreq_cooling.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c > index b76293cc989c..7838b6e2dba5 100644 > --- a/drivers/thermal/cpufreq_cooling.c > +++ b/drivers/thermal/cpufreq_cooling.c > @@ -501,17 +501,17 @@ __cpufreq_cooling_register(struct device_node *np, > struct thermal_cooling_device_ops *cooling_ops; > char *name; > > + if (IS_ERR_OR_NULL(policy)) { > + pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); > + return ERR_PTR(-EINVAL); > + } > + > dev = get_cpu_device(policy->cpu); > if (unlikely(!dev)) { > pr_warn("No cpu device for cpu %d\n", policy->cpu); > return ERR_PTR(-ENODEV); > } > > - if (IS_ERR_OR_NULL(policy)) { > - pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); > - return ERR_PTR(-EINVAL); > - } > - > i = cpufreq_table_count_valid_entries(policy); > if (!i) { > pr_debug("%s: CPUFreq table not found or has no valid entries\n", Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
On Tue, Aug 30, 2022 at 7:34 AM Viresh Kumar <viresh.kumar@linaro.org> wrote: > > On 25-08-22, 19:40, Xuewen Yan wrote: > > Since the policy needs to be accessed first when obtaining cpu devices, > > first check whether the policy is legal before this. > > > > Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com> > > Fixes: 5130802ddbb1 ("thermal: cpu_cooling: Switch to QoS requests for freq limits") > > > --- > > drivers/thermal/cpufreq_cooling.c | 10 +++++----- > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c > > index b76293cc989c..7838b6e2dba5 100644 > > --- a/drivers/thermal/cpufreq_cooling.c > > +++ b/drivers/thermal/cpufreq_cooling.c > > @@ -501,17 +501,17 @@ __cpufreq_cooling_register(struct device_node *np, > > struct thermal_cooling_device_ops *cooling_ops; > > char *name; > > > > + if (IS_ERR_OR_NULL(policy)) { > > + pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); > > + return ERR_PTR(-EINVAL); > > + } > > + > > dev = get_cpu_device(policy->cpu); > > if (unlikely(!dev)) { > > pr_warn("No cpu device for cpu %d\n", policy->cpu); > > return ERR_PTR(-ENODEV); > > } > > > > - if (IS_ERR_OR_NULL(policy)) { > > - pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); > > - return ERR_PTR(-EINVAL); > > - } > > - > > i = cpufreq_table_count_valid_entries(policy); > > if (!i) { > > pr_debug("%s: CPUFreq table not found or has no valid entries\n", > > Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Applied as 6.1 material, thanks!
diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c index b76293cc989c..7838b6e2dba5 100644 --- a/drivers/thermal/cpufreq_cooling.c +++ b/drivers/thermal/cpufreq_cooling.c @@ -501,17 +501,17 @@ __cpufreq_cooling_register(struct device_node *np, struct thermal_cooling_device_ops *cooling_ops; char *name; + if (IS_ERR_OR_NULL(policy)) { + pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); + return ERR_PTR(-EINVAL); + } + dev = get_cpu_device(policy->cpu); if (unlikely(!dev)) { pr_warn("No cpu device for cpu %d\n", policy->cpu); return ERR_PTR(-ENODEV); } - if (IS_ERR_OR_NULL(policy)) { - pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); - return ERR_PTR(-EINVAL); - } - i = cpufreq_table_count_valid_entries(policy); if (!i) { pr_debug("%s: CPUFreq table not found or has no valid entries\n",
Since the policy needs to be accessed first when obtaining cpu devices, first check whether the policy is legal before this. Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com> --- drivers/thermal/cpufreq_cooling.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)