summaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/smpboot.c
diff options
context:
space:
mode:
authorJohn Keller <jpk@sgi.com>2007-08-22 19:32:06 -0500
committerTony Luck <tony.luck@intel.com>2007-09-01 02:49:57 -0700
commit6e9de18120988388cdae5097c09e774416d58745 (patch)
tree04f7de7bee8d38a4e871970afda136bb5ac853be /arch/ia64/kernel/smpboot.c
parent1aac0b5739ae192ee812eee09625ebfc08c2d760 (diff)
downloadlinux-6e9de18120988388cdae5097c09e774416d58745.tar.gz
linux-6e9de18120988388cdae5097c09e774416d58745.tar.bz2
linux-6e9de18120988388cdae5097c09e774416d58745.zip
[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 @@
#include <asm/system.h>
#include <asm/tlbflush.h>
#include <asm/unistd.h>
+#include <asm/sn/arch.h>
#define SMP_DEBUG 0
@@ -730,6 +731,11 @@ int __cpu_disable(void)
return (-EBUSY);
}
+ if (ia64_platform_is("sn2")) {
+ if (!sn_cpu_disable_allowed(cpu))
+ return -EBUSY;
+ }
+
cpu_clear(cpu, cpu_online_map);
if (migrate_platform_irqs(cpu)) {