|
@@ -614,12 +614,16 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb,
|
|
|
kthread_bind(per_cpu(ksoftirqd, hotcpu),
|
|
|
any_online_cpu(cpu_online_map));
|
|
|
case CPU_DEAD:
|
|
|
- case CPU_DEAD_FROZEN:
|
|
|
+ case CPU_DEAD_FROZEN: {
|
|
|
+ struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 };
|
|
|
+
|
|
|
p = per_cpu(ksoftirqd, hotcpu);
|
|
|
per_cpu(ksoftirqd, hotcpu) = NULL;
|
|
|
+ sched_setscheduler(p, SCHED_FIFO, ¶m);
|
|
|
kthread_stop(p);
|
|
|
takeover_tasklets(hotcpu);
|
|
|
break;
|
|
|
+ }
|
|
|
#endif /* CONFIG_HOTPLUG_CPU */
|
|
|
}
|
|
|
return NOTIFY_OK;
|