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

Commit 530515a0 authored by Jacob Shin's avatar Jacob Shin Committed by Dave Jones
Browse files

[CPUFREQ] x86_64: Proper null pointer check in powernow_k8_get



This prevents crashes on dual core system when enough ticks are lost.

Replaces earlier patch by me.

(Duplicate null data check in powernowk8_get() removed -- davej)

 arch/i386/kernel/cpu/cpufreq/powernow-k8.c |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarDave Jones <davej@redhat.com>
parent b40fc492
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@

#define PFX "powernow-k8: "
#define BFX PFX "BIOS error: "
#define VERSION "version 1.60.1"
#define VERSION "version 1.60.2"
#include "powernow-k8.h"

/* serialize freq changes  */
@@ -910,6 +910,9 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi
	unsigned int newstate;
	int ret = -EIO;

	if (!data)
		return -EINVAL;

	/* only run on specific CPU from here on */
	oldmask = current->cpus_allowed;
	set_cpus_allowed(current, cpumask_of_cpu(pol->cpu));
@@ -969,6 +972,9 @@ static int powernowk8_verify(struct cpufreq_policy *pol)
{
	struct powernow_k8_data *data = powernow_data[pol->cpu];

	if (!data)
		return -EINVAL;

	return cpufreq_frequency_table_verify(pol, data->powernow_table);
}