diff options
Diffstat (limited to 'arch/arm/kernel/smp.c')
| -rw-r--r-- | arch/arm/kernel/smp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 2da087926ebe..0978282d5fc2 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | #include <linux/irq_work.h> | 31 | #include <linux/irq_work.h> |
| 32 | 32 | ||
| 33 | #include <linux/atomic.h> | 33 | #include <linux/atomic.h> |
| 34 | #include <asm/bugs.h> | ||
| 34 | #include <asm/smp.h> | 35 | #include <asm/smp.h> |
| 35 | #include <asm/cacheflush.h> | 36 | #include <asm/cacheflush.h> |
| 36 | #include <asm/cpu.h> | 37 | #include <asm/cpu.h> |
| @@ -236,8 +237,6 @@ int __cpu_disable(void) | |||
| 236 | flush_cache_louis(); | 237 | flush_cache_louis(); |
| 237 | local_flush_tlb_all(); | 238 | local_flush_tlb_all(); |
| 238 | 239 | ||
| 239 | clear_tasks_mm_cpumask(cpu); | ||
| 240 | |||
| 241 | return 0; | 240 | return 0; |
| 242 | } | 241 | } |
| 243 | 242 | ||
| @@ -255,6 +254,7 @@ void __cpu_die(unsigned int cpu) | |||
| 255 | } | 254 | } |
| 256 | pr_debug("CPU%u: shutdown\n", cpu); | 255 | pr_debug("CPU%u: shutdown\n", cpu); |
| 257 | 256 | ||
| 257 | clear_tasks_mm_cpumask(cpu); | ||
| 258 | /* | 258 | /* |
| 259 | * platform_cpu_kill() is generally expected to do the powering off | 259 | * platform_cpu_kill() is generally expected to do the powering off |
| 260 | * and/or cutting of clocks to the dying CPU. Optionally, this may | 260 | * and/or cutting of clocks to the dying CPU. Optionally, this may |
| @@ -405,6 +405,9 @@ asmlinkage void secondary_start_kernel(void) | |||
| 405 | * before we continue - which happens after __cpu_up returns. | 405 | * before we continue - which happens after __cpu_up returns. |
| 406 | */ | 406 | */ |
| 407 | set_cpu_online(cpu, true); | 407 | set_cpu_online(cpu, true); |
| 408 | |||
| 409 | check_other_bugs(); | ||
| 410 | |||
| 408 | complete(&cpu_running); | 411 | complete(&cpu_running); |
| 409 | 412 | ||
| 410 | local_irq_enable(); | 413 | local_irq_enable(); |
