X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fcpuidle%2Fcoupled.c;h=3265844839bfe9c79ef8849705262a52d16cc4e1;hb=079d364b042afbe811c4bb0cb57fcbf4f1cfab6d;hp=2c9bf2692232e51a66e5455368d9881383ccfc2f;hpb=41494cbaeaed07a43e111b323d6da5e1d8dd7936;p=~andy%2Flinux diff --git a/drivers/cpuidle/coupled.c b/drivers/cpuidle/coupled.c index 2c9bf269223..3265844839b 100644 --- a/drivers/cpuidle/coupled.c +++ b/drivers/cpuidle/coupled.c @@ -678,10 +678,22 @@ static int cpuidle_coupled_cpu_notify(struct notifier_block *nb, int cpu = (unsigned long)hcpu; struct cpuidle_device *dev; + switch (action & ~CPU_TASKS_FROZEN) { + case CPU_UP_PREPARE: + case CPU_DOWN_PREPARE: + case CPU_ONLINE: + case CPU_DEAD: + case CPU_UP_CANCELED: + case CPU_DOWN_FAILED: + break; + default: + return NOTIFY_OK; + } + mutex_lock(&cpuidle_lock); dev = per_cpu(cpuidle_devices, cpu); - if (!dev->coupled) + if (!dev || !dev->coupled) goto out; switch (action & ~CPU_TASKS_FROZEN) {