Messages in this thread Patch in this message | | | From | Eduardo Valentin <> | Subject | [PATCH 1/1] thermal: fix default governor assignment | Date | Tue, 14 Jan 2014 14:45:37 -0400 |
| |
When registering a thermal zone, passing an invalid .governor_name via struct thermal_zone_params may create a thermal zone without a governor, when it is supposed to be the default governor.
This patch fixes this issue by assigning the default governor, whenever the zone has a governor set to NULL.
Cc: Zhang Rui <rui.zhang@intel.com> Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reported-by: Wei Ni <wni@nvidia.com> Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com> --- drivers/thermal/thermal_core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index a621e90..967d980 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -89,7 +89,7 @@ int thermal_register_governor(struct thermal_governor *governor) list_for_each_entry(pos, &thermal_tz_list, node) { if (pos->governor) continue; - if (pos->tzp) + if (pos->tzp && pos->tzp->governor_name) name = pos->tzp->governor_name; else name = DEFAULT_THERMAL_GOVERNOR; @@ -1527,9 +1527,10 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type, /* Update 'this' zone's governor information */ mutex_lock(&thermal_governor_lock); - if (tz->tzp) + if (tz->tzp && tz->tzp->governor_name) tz->governor = __find_governor(tz->tzp->governor_name); - else + + if (!tz->governor) tz->governor = __find_governor(DEFAULT_THERMAL_GOVERNOR); mutex_unlock(&thermal_governor_lock); -- 1.8.2.1.342.gfa7285d
| |