Skip to content

Commit

Permalink
cpuidle: Prevent null pointer dereference in cpuidle_coupled_cpu_notify
Browse files Browse the repository at this point in the history
When a kernel is built to support multiple hardware types it's possible
that CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is set but the hardware the
kernel is run on doesn't support cpuidle and therefore doesn't load a
driver for it. In this case, when the system is shut down,
cpuidle_coupled_cpu_notify() gets called with cpuidle_devices set to
NULL. There are quite possibly other circumstances where this
situation can also occur and we should check for it.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
  • Loading branch information
tixy authored and rjwysocki committed Aug 17, 2012
1 parent 63c6ba4 commit 5fbbb90
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/cpuidle/coupled.c
Original file line number Diff line number Diff line change
Expand Up @@ -693,7 +693,7 @@ static int cpuidle_coupled_cpu_notify(struct notifier_block *nb,
mutex_lock(&cpuidle_lock);

dev = per_cpu(cpuidle_devices, cpu);
if (!dev->coupled)
if (!dev || !dev->coupled)
goto out;

switch (action & ~CPU_TASKS_FROZEN) {
Expand Down

0 comments on commit 5fbbb90

Please sign in to comment.