diff options
Diffstat (limited to 'arch/ia64/kernel/smpboot.c')
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 6 |
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)) { |