Skip to content

Commit

Permalink
[IA64] prevent ia64 from invoking irq handlers on offline CPUs
Browse files Browse the repository at this point in the history
Make ia64 refrain from clearing a given to-be-offlined CPU's bit in the
cpu_online_mask until it has processed pending irqs.  This change
prevents other CPUs from being blindsided by an apparently offline CPU
nevertheless changing globally visible state.  Also remove the existing
redundant cpu_clear(cpu, cpu_online_map).

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
  • Loading branch information
paulmck authored and aegl committed Sep 10, 2008
1 parent 6bf6a1a commit e7b1403
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions arch/ia64/kernel/smpboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -741,16 +741,14 @@ int __cpu_disable(void)
return -EBUSY;
}

cpu_clear(cpu, cpu_online_map);

if (migrate_platform_irqs(cpu)) {
cpu_set(cpu, cpu_online_map);
return (-EBUSY);
}

remove_siblinginfo(cpu);
cpu_clear(cpu, cpu_online_map);
fixup_irqs();
cpu_clear(cpu, cpu_online_map);
local_flush_tlb_all();
cpu_clear(cpu, cpu_callin_map);
return 0;
Expand Down

0 comments on commit e7b1403

Please sign in to comment.