drivers/cpufreq/pcc-cpufreq.c: avoid NULL pointer dereference
per_cpu(processors, n) can be NULL, resulting in: Loading CPUFreq modules[ 437.661360] BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<ffffffffa0434314>] pcc_cpufreq_cpu_init+0x74/0x220 [pcc_cpufreq] It's better to avoid the oops by failing the driver, and allowing the system to boot. Signed-off-by: Naga Chumbalkar <nagananda.chumbalkar@hp.com> Cc: Dave Jones <davej@codemonkey.org.uk> Cc: Len Brown <lenb@kernel.org> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
88cee8fd77
commit
e71f5cc402
1 changed files with 3 additions and 0 deletions
|
@ -261,6 +261,9 @@ static int pcc_get_offset(int cpu)
|
||||||
pr = per_cpu(processors, cpu);
|
pr = per_cpu(processors, cpu);
|
||||||
pcc_cpu_data = per_cpu_ptr(pcc_cpu_info, cpu);
|
pcc_cpu_data = per_cpu_ptr(pcc_cpu_info, cpu);
|
||||||
|
|
||||||
|
if (!pr)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
status = acpi_evaluate_object(pr->handle, "PCCP", NULL, &buffer);
|
status = acpi_evaluate_object(pr->handle, "PCCP", NULL, &buffer);
|
||||||
if (ACPI_FAILURE(status))
|
if (ACPI_FAILURE(status))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
Loading…
Reference in a new issue