aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/smpboot.c
diff options
context:
space:
mode:
authorJohn Keller <jpk@sgi.com>2007-08-22 20:32:06 -0400
committerTony Luck <tony.luck@intel.com>2007-09-01 05:49:57 -0400
commit6e9de18120988388cdae5097c09e774416d58745 (patch)
tree04f7de7bee8d38a4e871970afda136bb5ac853be /arch/ia64/kernel/smpboot.c
parent1aac0b5739ae192ee812eee09625ebfc08c2d760 (diff)
[IA64] SN: Add support for CPU disable
Add additional support for CPU disable on SN platforms. Correctly setup the smp_affinity mask for I/O error IRQs. Restrict the use of the feature to Altix 4000 and 450 systems running with a CPU disable capable PROM, and do not allow disabling of CPU 0. Signed-off-by: John Keller <jpk@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/smpboot.c')
-rw-r--r--arch/ia64/kernel/smpboot.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index 62209dcf06d3..308772f7cddc 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -58,6 +58,7 @@
58#include <asm/system.h> 58#include <asm/system.h>
59#include <asm/tlbflush.h> 59#include <asm/tlbflush.h>
60#include <asm/unistd.h> 60#include <asm/unistd.h>
61#include <asm/sn/arch.h>
61 62
62#define SMP_DEBUG 0 63#define SMP_DEBUG 0
63 64
@@ -730,6 +731,11 @@ int __cpu_disable(void)
730 return (-EBUSY); 731 return (-EBUSY);
731 } 732 }
732 733
734 if (ia64_platform_is("sn2")) {
735 if (!sn_cpu_disable_allowed(cpu))
736 return -EBUSY;
737 }
738
733 cpu_clear(cpu, cpu_online_map); 739 cpu_clear(cpu, cpu_online_map);
734 740
735 if (migrate_platform_irqs(cpu)) { 741 if (migrate_platform_irqs(cpu)) {