diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2013-04-17 07:18:28 +0000 |
---|---|---|
committer | Zhang Rui <rui.zhang@intel.com> | 2013-04-17 23:43:31 +0800 |
commit | 4f89038f177462dbd2fd911297fd004226176db7 (patch) | |
tree | 5b5fef33500baa34c4c5d7fba795c4f79c850676 /drivers/thermal | |
parent | d13cb03aef0c062dcdd16b411bd4c02c1574ff08 (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.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c index 5f5c780bcd90..768b508f0d69 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; |