]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - kernel/softirq.c
[ARM] 3690/1: genirq: Introduce and make use of dummy irq chip
[karo-tx-linux.git] / kernel / softirq.c
index 336f92d64e2ec04bb56d7146a4fc1e1eeb1141f5..8f03e3b89b5540a0e21b1bab99dcb455bb74ffd5 100644 (file)
@@ -446,7 +446,7 @@ static void takeover_tasklets(unsigned int cpu)
 }
 #endif /* CONFIG_HOTPLUG_CPU */
 
-static int cpu_callback(struct notifier_block *nfb,
+static int __devinit cpu_callback(struct notifier_block *nfb,
                                  unsigned long action,
                                  void *hcpu)
 {
@@ -470,6 +470,8 @@ static int cpu_callback(struct notifier_block *nfb,
                break;
 #ifdef CONFIG_HOTPLUG_CPU
        case CPU_UP_CANCELED:
+               if (!per_cpu(ksoftirqd, hotcpu))
+                       break;
                /* Unbind so it can run.  Fall thru. */
                kthread_bind(per_cpu(ksoftirqd, hotcpu),
                             any_online_cpu(cpu_online_map));
@@ -484,7 +486,7 @@ static int cpu_callback(struct notifier_block *nfb,
        return NOTIFY_OK;
 }
 
-static struct notifier_block cpu_nfb = {
+static struct notifier_block __devinitdata cpu_nfb = {
        .notifier_call = cpu_callback
 };