[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: Thomas Renninger <trenn@suse.de> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Dave Jones <davej@redhat.com>
This commit is contained in:
committed by
Dave Jones
parent
b40fc4923e
commit
530515a06f
@@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
#define PFX "powernow-k8: "
|
#define PFX "powernow-k8: "
|
||||||
#define BFX PFX "BIOS error: "
|
#define BFX PFX "BIOS error: "
|
||||||
#define VERSION "version 1.60.1"
|
#define VERSION "version 1.60.2"
|
||||||
#include "powernow-k8.h"
|
#include "powernow-k8.h"
|
||||||
|
|
||||||
/* serialize freq changes */
|
/* serialize freq changes */
|
||||||
@@ -910,6 +910,9 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi
|
|||||||
unsigned int newstate;
|
unsigned int newstate;
|
||||||
int ret = -EIO;
|
int ret = -EIO;
|
||||||
|
|
||||||
|
if (!data)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
/* only run on specific CPU from here on */
|
/* only run on specific CPU from here on */
|
||||||
oldmask = current->cpus_allowed;
|
oldmask = current->cpus_allowed;
|
||||||
set_cpus_allowed(current, cpumask_of_cpu(pol->cpu));
|
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];
|
struct powernow_k8_data *data = powernow_data[pol->cpu];
|
||||||
|
|
||||||
|
if (!data)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
return cpufreq_frequency_table_verify(pol, data->powernow_table);
|
return cpufreq_frequency_table_verify(pol, data->powernow_table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user