Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f89038f authored by Dan Carpenter's avatar Dan Carpenter Committed by Zhang Rui
Browse files

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: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
parent d13cb03a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;