diff options
| -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 bc2f64d7224..2018e624f5e 100644 --- a/arch/ia64/kernel/crash.c +++ b/arch/ia64/kernel/crash.c @@ -79,6 +79,7 @@ crash_save_this_cpu()  	final_note(buf);  } +#ifdef CONFIG_SMP  static int  kdump_wait_cpu_freeze(void)  { @@ -91,6 +92,7 @@ kdump_wait_cpu_freeze(void)  	}  	return 1;  } +#endif  void  machine_crash_shutdown(struct pt_regs *pt) @@ -132,11 +134,12 @@ kdump_cpu_freeze(struct unw_frame_info *info, void *arg)  	atomic_inc(&kdump_cpu_freezed);  	kdump_status[cpuid] = 1;  	mb(); -	if (cpuid == 0) { -		for (;;) -			cpu_relax(); -	} else +#ifdef CONFIG_HOTPLUG_CPU +	if (cpuid != 0)  		ia64_jump_to_sal(&sal_boot_rendez_state[cpuid]); +#endif +	for (;;) +		cpu_relax();  }  static int diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c index e2ccc9f660c..714179587a7 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)  void machine_shutdown(void)  { +#ifdef CONFIG_HOTPLUG_CPU  	int cpu;  	for_each_online_cpu(cpu) {  		if (cpu != smp_processor_id())  			cpu_down(cpu);  	} +#endif  	kexec_disable_iosapic();  }  |