diff options
author | Magnus Damm <magnus@valinux.co.jp> | 2007-02-05 01:43:42 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2007-02-05 14:27:21 -0500 |
commit | bcb9b99d1fb6a1cbe592f131dc95450d2f18c91f (patch) | |
tree | 7c3e9711112c0559f8d734b5fed6e82eb846c3be | |
parent | 62d0cfcb27cf755cebdc93ca95dabc83608007cd (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>
-rw-r--r-- | arch/ia64/kernel/crash.c | 11 | ||||
-rw-r--r-- | arch/ia64/kernel/machine_kexec.c | 2 |
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 | ||
82 | static int | 83 | static int |
83 | kdump_wait_cpu_freeze(void) | 84 | kdump_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 | ||
95 | void | 97 | void |
96 | machine_crash_shutdown(struct pt_regs *pt) | 98 | machine_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 | ||
142 | static int | 145 | static 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 | ||
71 | void machine_shutdown(void) | 71 | void 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 | ||