diff options
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 11463994a7d5..2ec5bbff461e 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -736,14 +736,16 @@ int __cpu_disable(void) | |||
736 | return -EBUSY; | 736 | return -EBUSY; |
737 | } | 737 | } |
738 | 738 | ||
739 | cpu_clear(cpu, cpu_online_map); | ||
740 | |||
739 | if (migrate_platform_irqs(cpu)) { | 741 | if (migrate_platform_irqs(cpu)) { |
740 | cpu_set(cpu, cpu_online_map); | 742 | cpu_set(cpu, cpu_online_map); |
741 | return (-EBUSY); | 743 | return (-EBUSY); |
742 | } | 744 | } |
743 | 745 | ||
744 | remove_siblinginfo(cpu); | 746 | remove_siblinginfo(cpu); |
745 | fixup_irqs(); | ||
746 | cpu_clear(cpu, cpu_online_map); | 747 | cpu_clear(cpu, cpu_online_map); |
748 | fixup_irqs(); | ||
747 | local_flush_tlb_all(); | 749 | local_flush_tlb_all(); |
748 | cpu_clear(cpu, cpu_callin_map); | 750 | cpu_clear(cpu, cpu_callin_map); |
749 | return 0; | 751 | return 0; |