aboutsummaryrefslogtreecommitdiff
path: root/drivers/thermal
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2013-04-17 07:18:28 +0000
committerZhang Rui <rui.zhang@intel.com>2013-04-17 23:43:31 +0800
commit4f89038f177462dbd2fd911297fd004226176db7 (patch)
tree5b5fef33500baa34c4c5d7fba795c4f79c850676 /drivers/thermal
parentd13cb03aef0c062dcdd16b411bd4c02c1574ff08 (diff)
Thermal: cpufreq cooling: endian bug in cpufreq_get_max_state()
This code doesn't work on big endian systems because we're storing low values in the high bits of the unsigned long. It makes it a very high value instead. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Diffstat (limited to 'drivers/thermal')
-rw-r--r--drivers/thermal/cpu_cooling.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
index 5f5c780bcd9..768b508f0d6 100644
--- a/drivers/thermal/cpu_cooling.c
+++ b/drivers/thermal/cpu_cooling.c
@@ -303,12 +303,12 @@ static int cpufreq_get_max_state(struct thermal_cooling_device *cdev,
struct cpufreq_cooling_device *cpufreq_device = cdev->devdata;
struct cpumask *mask = &cpufreq_device->allowed_cpus;
unsigned int cpu;
- unsigned long count = 0;
+ unsigned int count = 0;
int ret;
cpu = cpumask_any(mask);
- ret = get_property(cpu, 0, (unsigned int *)&count, GET_MAXL);
+ ret = get_property(cpu, 0, &count, GET_MAXL);
if (count > 0)
*state = count;