2022-08-25 12:22:41

by Xuewen Yan

[permalink] [raw]
Subject: [PATCH] thermal: Check the policy first in cpufreq_cooling_register

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 <[email protected]>
---
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


2022-08-29 06:50:44

by Xuewen Yan

[permalink] [raw]
Subject: Re: [PATCH] thermal: Check the policy first in cpufreq_cooling_register

Hi all,

Any comments?

On Thu, Aug 25, 2022 at 7:42 PM Xuewen Yan <[email protected]> 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 <[email protected]>
> ---
> 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!

2022-08-30 05:53:07

by Viresh Kumar

[permalink] [raw]
Subject: Re: [PATCH] thermal: Check the policy first in cpufreq_cooling_register

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 <[email protected]>

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 <[email protected]>

--
viresh

2022-09-03 18:26:40

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] thermal: Check the policy first in cpufreq_cooling_register

On Tue, Aug 30, 2022 at 7:34 AM Viresh Kumar <[email protected]> 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 <[email protected]>
>
> 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 <[email protected]>

Applied as 6.1 material, thanks!