Patch "thermal: cpu_cooling: fix improper order during initialization" has been added to the 4.6-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
thermal: cpu_cooling: fix improper order during initialization
to the 4.6-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
thermal-cpu_cooling-fix-improper-order-during-initialization.patch
and it can be found in the queue-4.6 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
f840ab18bdf2e415dac21d09fbbbd2873111bd48Mon Sep 17 00:00:00 2001
From: Lukasz Luba <[email protected]>
Date: Tue, 31 May 2016 11:32:02 +0100
Subject: thermal: cpu_cooling: fix improper order during initialization
From: Lukasz Luba <[email protected]>
commit f840ab18bdf2e415dac21d09fbbbd2873111bd48 upstream.
The freq_table array is not populated before calling thermal_of_cooling_register. The code which populates the freq table was introduced in commit f6859014.
This should be done before registering new thermal cooling device. The log shows effects of this wrong decision.
[ 2.172614] cpu cpu1: Failed to get voltage for frequency 1984518656000: -34 [ 2.220863] cpu cpu0: Failed to get voltage for frequency 1984524416000: -34
--- drivers/thermal/cpu_cooling.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
drivers/thermal/cpu_cooling.c +8 -8
@@ -857,14 +857,6 @@ __cpufreq_cooling_register(struct device goto free_power_table; } -snprintf (dev_name,sizeof (dev_name),"thermal-cpufreq-%d" , - cpufreq_dev->id); - - cool_dev =thermal_of_cooling_device_register (np, dev_name, cpufreq_dev, - &cpufreq_cooling_ops); -if (IS_ERR (cool_dev)) - goto remove_idr; -/* Fill freq-table in descending order of frequencies */ for (i =0 , freq =-1 ; i <= cpufreq_dev->max_level; i++) { freq =find_next_max (table, freq);
@@ -877,6 +869,14 @@ __cpufreq_cooling_register(struct devicepr_debug ("%s: freq:%u KHz\n" , __func__, freq); } +snprintf (dev_name,sizeof (dev_name),"thermal-cpufreq-%d" , + cpufreq_dev->id); + + cool_dev =thermal_of_cooling_device_register (np, dev_name, cpufreq_dev, + &cpufreq_cooling_ops); +if (IS_ERR (cool_dev)) + goto remove_idr; + cpufreq_dev->clipped_freq = cpufreq_dev->freq_table[0 ]; cpufreq_dev->cool_dev = cool_dev;
Patches currently in stable-queue which might be from [email protected] are
queue-4.6/thermal-cpu_cooling-fix-improper-order-during-initialization.patch