aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMagnus Damm <magnus@valinux.co.jp>2007-02-05 01:43:42 -0500
committerTony Luck <tony.luck@intel.com>2007-02-05 14:27:21 -0500
commitbcb9b99d1fb6a1cbe592f131dc95450d2f18c91f (patch)
tree7c3e9711112c0559f8d734b5fed6e82eb846c3be /arch
parent62d0cfcb27cf755cebdc93ca95dabc83608007cd (diff)
[IA64] kexec: Fix CONFIG_SMP=n compilation
Kexec support for 2.6.20 on ia64 does not build properly using a config made up by CONFIG_SMP=n and CONFIG_HOTPLUG_CPU=n: Signed-off-by: Magnus Damm <magnus@valinux.co.jp> Acked-by: Simon Horman <horms@verge.net.au> Acked-by: Jay Lan <jlan@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/ia64/kernel/crash.c11
-rw-r--r--arch/ia64/kernel/machine_kexec.c2
2 files changed, 9 insertions, 4 deletions
diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c
index bc2f64d72244..2018e624f5e2 100644
--- a/arch/ia64/kernel/crash.c
+++ b/arch/ia64/kernel/crash.c
@@ -79,6 +79,7 @@ crash_save_this_cpu()
79 final_note(buf); 79 final_note(buf);
80} 80}
81 81
82#ifdef CONFIG_SMP
82static int 83static int
83kdump_wait_cpu_freeze(void) 84kdump_wait_cpu_freeze(void)
84{ 85{
@@ -91,6 +92,7 @@ kdump_wait_cpu_freeze(void)
91 } 92 }
92 return 1; 93 return 1;
93} 94}
95#endif
94 96
95void 97void
96machine_crash_shutdown(struct pt_regs *pt) 98machine_crash_shutdown(struct pt_regs *pt)
@@ -132,11 +134,12 @@ kdump_cpu_freeze(struct unw_frame_info *info, void *arg)
132 atomic_inc(&kdump_cpu_freezed); 134 atomic_inc(&kdump_cpu_freezed);
133 kdump_status[cpuid] = 1; 135 kdump_status[cpuid] = 1;
134 mb(); 136 mb();
135 if (cpuid == 0) { 137#ifdef CONFIG_HOTPLUG_CPU
136 for (;;) 138 if (cpuid != 0)
137 cpu_relax();
138 } else
139 ia64_jump_to_sal(&sal_boot_rendez_state[cpuid]); 139 ia64_jump_to_sal(&sal_boot_rendez_state[cpuid]);
140#endif
141 for (;;)
142 cpu_relax();
140} 143}
141 144
142static int 145static int
diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c
index e2ccc9f660c5..714179587a7a 100644
--- a/arch/ia64/kernel/machine_kexec.c
+++ b/arch/ia64/kernel/machine_kexec.c
@@ -70,12 +70,14 @@ void machine_kexec_cleanup(struct kimage *image)
70 70
71void machine_shutdown(void) 71void machine_shutdown(void)
72{ 72{
73#ifdef CONFIG_HOTPLUG_CPU
73 int cpu; 74 int cpu;
74 75
75 for_each_online_cpu(cpu) { 76 for_each_online_cpu(cpu) {
76 if (cpu != smp_processor_id()) 77 if (cpu != smp_processor_id())
77 cpu_down(cpu); 78 cpu_down(cpu);
78 } 79 }
80#endif
79 kexec_disable_iosapic(); 81 kexec_disable_iosapic();
80} 82}
81 83