All of lore.kernel.org
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Amit Daniel Kachhap <amit.kachhap@gmail.com>,
	Javi Merino <javi.merino@kernel.org>,
	Zhang Rui <rui.zhang@intel.com>,
	Amit Kucheria <amit.kucheria@verdurent.com>,
	"open list:THERMAL/CPU_COOLING" <linux-pm@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] thermal/drivers/cpufreq_cooling: Remove abusing WARN_ON
Date: Mon, 23 Mar 2020 08:48:33 +0530	[thread overview]
Message-ID: <20200323031833.fefxzvl7q2t5dn3i@vireshk-i7> (raw)
In-Reply-To: <20200321193107.21590-1-daniel.lezcano@linaro.org>

On 21-03-20, 20:31, Daniel Lezcano wrote:
> The WARN_ON macros are used at the entry functions state2power() and
> set_cur_state().
> 
> state2power() is called with the max_state retrieved from
> get_max_state which returns cpufreq_cdev->max_level, then it check if
> max_state is > cpufreq_cdev->max_level. The test does not really makes
> sense but let's assume we want to make sure to catch an error if the
> code evolves. However the WARN_ON is overkill.
> 
> set_cur_state() is also called from userspace if we write to the
> sysfs. It is easy to see a stack dumped by just writing to sysfs
> /sys/class/thermal/cooling_device0/cur_state a value greater than
> "max_level". A bit scary. Returing -EINVAL is enough.
> 
> Remove these WARN_ON.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  drivers/thermal/cpufreq_cooling.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c
> index af55ac08e1bd..d66791a71320 100644
> --- a/drivers/thermal/cpufreq_cooling.c
> +++ b/drivers/thermal/cpufreq_cooling.c
> @@ -273,7 +273,7 @@ static int cpufreq_state2power(struct thermal_cooling_device *cdev,
>  	struct cpufreq_cooling_device *cpufreq_cdev = cdev->devdata;
>  
>  	/* Request state should be less than max_level */
> -	if (WARN_ON(state > cpufreq_cdev->max_level))
> +	if (state > cpufreq_cdev->max_level)
>  		return -EINVAL;
>  
>  	num_cpus = cpumask_weight(cpufreq_cdev->policy->cpus);
> @@ -434,7 +434,7 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,
>  	int ret;
>  
>  	/* Request state should be less than max_level */
> -	if (WARN_ON(state > cpufreq_cdev->max_level))
> +	if (state > cpufreq_cdev->max_level)
>  		return -EINVAL;
>  
>  	/* Check if the old cooling action is same as new cooling action */

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>


-- 
viresh

  reply	other threads:[~2020-03-23  3:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-21 19:31 [PATCH] thermal/drivers/cpufreq_cooling: Remove abusing WARN_ON Daniel Lezcano
2020-03-23  3:18 ` Viresh Kumar [this message]
2020-03-24  2:30 ` Amit Kucheria

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200323031833.fefxzvl7q2t5dn3i@vireshk-i7 \
    --to=viresh.kumar@linaro.org \
    --cc=amit.kachhap@gmail.com \
    --cc=amit.kucheria@verdurent.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=javi.merino@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rui.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.