diff options
Diffstat (limited to 'kernel/softlockup.c')
-rw-r--r-- | kernel/softlockup.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/softlockup.c b/kernel/softlockup.c index 8fa7040247ad..0131e296ffb4 100644 --- a/kernel/softlockup.c +++ b/kernel/softlockup.c | |||
@@ -146,6 +146,7 @@ cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
146 | 146 | ||
147 | switch (action) { | 147 | switch (action) { |
148 | case CPU_UP_PREPARE: | 148 | case CPU_UP_PREPARE: |
149 | case CPU_UP_PREPARE_FROZEN: | ||
149 | BUG_ON(per_cpu(watchdog_task, hotcpu)); | 150 | BUG_ON(per_cpu(watchdog_task, hotcpu)); |
150 | p = kthread_create(watchdog, hcpu, "watchdog/%d", hotcpu); | 151 | p = kthread_create(watchdog, hcpu, "watchdog/%d", hotcpu); |
151 | if (IS_ERR(p)) { | 152 | if (IS_ERR(p)) { |
@@ -157,16 +158,19 @@ cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
157 | kthread_bind(p, hotcpu); | 158 | kthread_bind(p, hotcpu); |
158 | break; | 159 | break; |
159 | case CPU_ONLINE: | 160 | case CPU_ONLINE: |
161 | case CPU_ONLINE_FROZEN: | ||
160 | wake_up_process(per_cpu(watchdog_task, hotcpu)); | 162 | wake_up_process(per_cpu(watchdog_task, hotcpu)); |
161 | break; | 163 | break; |
162 | #ifdef CONFIG_HOTPLUG_CPU | 164 | #ifdef CONFIG_HOTPLUG_CPU |
163 | case CPU_UP_CANCELED: | 165 | case CPU_UP_CANCELED: |
166 | case CPU_UP_CANCELED_FROZEN: | ||
164 | if (!per_cpu(watchdog_task, hotcpu)) | 167 | if (!per_cpu(watchdog_task, hotcpu)) |
165 | break; | 168 | break; |
166 | /* Unbind so it can run. Fall thru. */ | 169 | /* Unbind so it can run. Fall thru. */ |
167 | kthread_bind(per_cpu(watchdog_task, hotcpu), | 170 | kthread_bind(per_cpu(watchdog_task, hotcpu), |
168 | any_online_cpu(cpu_online_map)); | 171 | any_online_cpu(cpu_online_map)); |
169 | case CPU_DEAD: | 172 | case CPU_DEAD: |
173 | case CPU_DEAD_FROZEN: | ||
170 | p = per_cpu(watchdog_task, hotcpu); | 174 | p = per_cpu(watchdog_task, hotcpu); |
171 | per_cpu(watchdog_task, hotcpu) = NULL; | 175 | per_cpu(watchdog_task, hotcpu) = NULL; |
172 | kthread_stop(p); | 176 | kthread_stop(p); |