aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/smpboot.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/kernel/smpboot.c')
-rw-r--r--arch/ia64/kernel/smpboot.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index b39853a292d5..d8f05e504fbf 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -138,6 +138,7 @@ cpumask_t cpu_possible_map = CPU_MASK_NONE;
138EXPORT_SYMBOL(cpu_possible_map); 138EXPORT_SYMBOL(cpu_possible_map);
139 139
140cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned; 140cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned;
141EXPORT_SYMBOL(cpu_core_map);
141DEFINE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map); 142DEFINE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map);
142EXPORT_PER_CPU_SYMBOL(cpu_sibling_map); 143EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
143 144
@@ -740,16 +741,14 @@ int __cpu_disable(void)
740 return -EBUSY; 741 return -EBUSY;
741 } 742 }
742 743
743 cpu_clear(cpu, cpu_online_map);
744
745 if (migrate_platform_irqs(cpu)) { 744 if (migrate_platform_irqs(cpu)) {
746 cpu_set(cpu, cpu_online_map); 745 cpu_set(cpu, cpu_online_map);
747 return (-EBUSY); 746 return (-EBUSY);
748 } 747 }
749 748
750 remove_siblinginfo(cpu); 749 remove_siblinginfo(cpu);
751 cpu_clear(cpu, cpu_online_map);
752 fixup_irqs(); 750 fixup_irqs();
751 cpu_clear(cpu, cpu_online_map);
753 local_flush_tlb_all(); 752 local_flush_tlb_all();
754 cpu_clear(cpu, cpu_callin_map); 753 cpu_clear(cpu, cpu_callin_map);
755 return 0; 754 return 0;