diff options
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r-- | kernel/softirq.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index 73217a9e2875..0f546ddea43d 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/notifier.h> | 14 | #include <linux/notifier.h> |
15 | #include <linux/percpu.h> | 15 | #include <linux/percpu.h> |
16 | #include <linux/cpu.h> | 16 | #include <linux/cpu.h> |
17 | #include <linux/freezer.h> | ||
17 | #include <linux/kthread.h> | 18 | #include <linux/kthread.h> |
18 | #include <linux/rcupdate.h> | 19 | #include <linux/rcupdate.h> |
19 | #include <linux/smp.h> | 20 | #include <linux/smp.h> |
@@ -488,8 +489,6 @@ void __init softirq_init(void) | |||
488 | 489 | ||
489 | static int ksoftirqd(void * __bind_cpu) | 490 | static int ksoftirqd(void * __bind_cpu) |
490 | { | 491 | { |
491 | current->flags |= PF_NOFREEZE; | ||
492 | |||
493 | set_current_state(TASK_INTERRUPTIBLE); | 492 | set_current_state(TASK_INTERRUPTIBLE); |
494 | 493 | ||
495 | while (!kthread_should_stop()) { | 494 | while (!kthread_should_stop()) { |
@@ -614,12 +613,16 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb, | |||
614 | kthread_bind(per_cpu(ksoftirqd, hotcpu), | 613 | kthread_bind(per_cpu(ksoftirqd, hotcpu), |
615 | any_online_cpu(cpu_online_map)); | 614 | any_online_cpu(cpu_online_map)); |
616 | case CPU_DEAD: | 615 | case CPU_DEAD: |
617 | case CPU_DEAD_FROZEN: | 616 | case CPU_DEAD_FROZEN: { |
617 | struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 }; | ||
618 | |||
618 | p = per_cpu(ksoftirqd, hotcpu); | 619 | p = per_cpu(ksoftirqd, hotcpu); |
619 | per_cpu(ksoftirqd, hotcpu) = NULL; | 620 | per_cpu(ksoftirqd, hotcpu) = NULL; |
621 | sched_setscheduler(p, SCHED_FIFO, ¶m); | ||
620 | kthread_stop(p); | 622 | kthread_stop(p); |
621 | takeover_tasklets(hotcpu); | 623 | takeover_tasklets(hotcpu); |
622 | break; | 624 | break; |
625 | } | ||
623 | #endif /* CONFIG_HOTPLUG_CPU */ | 626 | #endif /* CONFIG_HOTPLUG_CPU */ |
624 | } | 627 | } |
625 | return NOTIFY_OK; | 628 | return NOTIFY_OK; |