All of lore.kernel.org
 help / color / mirror / Atom feed
* FAILED: patch "[PATCH] thermal/drivers/cpufreq_cooling: Update cpufreq_state only if" failed to apply to 5.4-stable tree
@ 2020-12-28 11:48 gregkh
  2020-12-29  6:56 ` [PATCH for 5.4 stable] thermal/drivers/cpu_cooling: Update cpufreq_state only if state has changed Viresh Kumar
  0 siblings, 1 reply; 3+ messages in thread
From: gregkh @ 2020-12-28 11:48 UTC (permalink / raw)
  To: zhuguangqing, daniel.lezcano, stable, viresh.kumar; +Cc: stable


The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 236761f19a4f373354f1dcf399b57753f1f4b871 Mon Sep 17 00:00:00 2001
From: Zhuguangqing <zhuguangqing@xiaomi.com>
Date: Fri, 6 Nov 2020 17:22:43 +0800
Subject: [PATCH] thermal/drivers/cpufreq_cooling: Update cpufreq_state only if
 state has changed

If state has not changed successfully and we updated cpufreq_state,
next time when the new state is equal to cpufreq_state (not changed
successfully last time), we will return directly and miss a
freq_qos_update_request() that should have been.

Fixes: 5130802ddbb1 ("thermal: cpu_cooling: Switch to QoS requests for freq limits")
Cc: v5.4+ <stable@vger.kernel.org> # v5.4+
Signed-off-by: Zhuguangqing <zhuguangqing@xiaomi.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20201106092243.15574-1-zhuguangqing83@gmail.com

diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c
index cc2959f22f01..612f063c1cfc 100644
--- a/drivers/thermal/cpufreq_cooling.c
+++ b/drivers/thermal/cpufreq_cooling.c
@@ -438,13 +438,11 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,
 	if (cpufreq_cdev->cpufreq_state == state)
 		return 0;
 
-	cpufreq_cdev->cpufreq_state = state;
-
 	frequency = get_state_freq(cpufreq_cdev, state);
 
 	ret = freq_qos_update_request(&cpufreq_cdev->qos_req, frequency);
-
 	if (ret > 0) {
+		cpufreq_cdev->cpufreq_state = state;
 		cpus = cpufreq_cdev->policy->cpus;
 		max_capacity = arch_scale_cpu_capacity(cpumask_first(cpus));
 		capacity = frequency * max_capacity;


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH for 5.4 stable] thermal/drivers/cpu_cooling: Update cpufreq_state only if state has changed
  2020-12-28 11:48 FAILED: patch "[PATCH] thermal/drivers/cpufreq_cooling: Update cpufreq_state only if" failed to apply to 5.4-stable tree gregkh
@ 2020-12-29  6:56 ` Viresh Kumar
  2020-12-30 15:30   ` Greg KH
  0 siblings, 1 reply; 3+ messages in thread
From: Viresh Kumar @ 2020-12-29  6:56 UTC (permalink / raw)
  To: stable; +Cc: Viresh Kumar, gregkh, zhuguangqing, daniel.lezcano

From: Zhuguangqing <zhuguangqing@xiaomi.com>

[ Upstream commit 236761f19a4f373354f1dcf399b57753f1f4b871 ]

If state has not changed successfully and we updated cpufreq_state,
next time when the new state is equal to cpufreq_state (not changed
successfully last time), we will return directly and miss a
freq_qos_update_request() that should have been.

Fixes: 5130802ddbb1 ("thermal: cpu_cooling: Switch to QoS requests for freq limits")
Cc: v5.4+ <stable@vger.kernel.org> # v5.4+
Signed-off-by: Zhuguangqing <zhuguangqing@xiaomi.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20201106092243.15574-1-zhuguangqing83@gmail.com
[ Viresh: Redo the patch for 5.4 stable kernel ]
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
 drivers/thermal/cpu_cooling.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
index c37886a26712..9d24bc05df0d 100644
--- a/drivers/thermal/cpu_cooling.c
+++ b/drivers/thermal/cpu_cooling.c
@@ -320,6 +320,7 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,
 				 unsigned long state)
 {
 	struct cpufreq_cooling_device *cpufreq_cdev = cdev->devdata;
+	int ret;
 
 	/* Request state should be less than max_level */
 	if (WARN_ON(state > cpufreq_cdev->max_level))
@@ -329,10 +330,12 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,
 	if (cpufreq_cdev->cpufreq_state == state)
 		return 0;
 
-	cpufreq_cdev->cpufreq_state = state;
+	ret = freq_qos_update_request(&cpufreq_cdev->qos_req,
+			cpufreq_cdev->freq_table[state].frequency);
+	if (ret > 0)
+		cpufreq_cdev->cpufreq_state = state;
 
-	return freq_qos_update_request(&cpufreq_cdev->qos_req,
-				cpufreq_cdev->freq_table[state].frequency);
+	return ret;
 }
 
 /**
-- 
2.25.0.rc1.19.g042ed3e048af


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH for 5.4 stable] thermal/drivers/cpu_cooling: Update cpufreq_state only if state has changed
  2020-12-29  6:56 ` [PATCH for 5.4 stable] thermal/drivers/cpu_cooling: Update cpufreq_state only if state has changed Viresh Kumar
@ 2020-12-30 15:30   ` Greg KH
  0 siblings, 0 replies; 3+ messages in thread
From: Greg KH @ 2020-12-30 15:30 UTC (permalink / raw)
  To: Viresh Kumar; +Cc: stable, zhuguangqing, daniel.lezcano

On Tue, Dec 29, 2020 at 12:26:39PM +0530, Viresh Kumar wrote:
> From: Zhuguangqing <zhuguangqing@xiaomi.com>
> 
> [ Upstream commit 236761f19a4f373354f1dcf399b57753f1f4b871 ]
> 
> If state has not changed successfully and we updated cpufreq_state,
> next time when the new state is equal to cpufreq_state (not changed
> successfully last time), we will return directly and miss a
> freq_qos_update_request() that should have been.
> 
> Fixes: 5130802ddbb1 ("thermal: cpu_cooling: Switch to QoS requests for freq limits")
> Cc: v5.4+ <stable@vger.kernel.org> # v5.4+
> Signed-off-by: Zhuguangqing <zhuguangqing@xiaomi.com>
> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Link: https://lore.kernel.org/r/20201106092243.15574-1-zhuguangqing83@gmail.com
> [ Viresh: Redo the patch for 5.4 stable kernel ]
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
>  drivers/thermal/cpu_cooling.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)

Now applied, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-12-30 15:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-28 11:48 FAILED: patch "[PATCH] thermal/drivers/cpufreq_cooling: Update cpufreq_state only if" failed to apply to 5.4-stable tree gregkh
2020-12-29  6:56 ` [PATCH for 5.4 stable] thermal/drivers/cpu_cooling: Update cpufreq_state only if state has changed Viresh Kumar
2020-12-30 15:30   ` Greg KH

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.