Commit adf142e3 authored by Jay Lan's avatar Jay Lan Committed by Tony Luck

[IA64] Do not call SN_SAL_SET_CPU_NUMBER twice on cpu 0

This is an SN specific patch.

Architectually, cpu_init is always called twice on cpu 0
and thus resulted in two SN_SAL_SET_CPU_NUMBER calls.

This was harmless in production kernel; however, it can
cause problem on booting up a crashdump kernel at Altix.

Here is the patch that detects the second sn_cpu_init
call and skips the second call to SN_SAL_SET_CPU_NUMBER.
Signed-Off-By: default avatarJay Lan <jlan@sgi.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 3640543d
...@@ -580,7 +580,7 @@ void __cpuinit sn_cpu_init(void) ...@@ -580,7 +580,7 @@ void __cpuinit sn_cpu_init(void)
int slice; int slice;
int cnode; int cnode;
int i; int i;
static int wars_have_been_checked; static int wars_have_been_checked, set_cpu0_number;
cpuid = smp_processor_id(); cpuid = smp_processor_id();
if (cpuid == 0 && IS_MEDUSA()) { if (cpuid == 0 && IS_MEDUSA()) {
...@@ -605,8 +605,16 @@ void __cpuinit sn_cpu_init(void) ...@@ -605,8 +605,16 @@ void __cpuinit sn_cpu_init(void)
/* /*
* Don't check status. The SAL call is not supported on all PROMs * Don't check status. The SAL call is not supported on all PROMs
* but a failure is harmless. * but a failure is harmless.
* Architechtuallly, cpu_init is always called twice on cpu 0. We
* should set cpu_number on cpu 0 once.
*/ */
(void) ia64_sn_set_cpu_number(cpuid); if (cpuid == 0) {
if (!set_cpu0_number) {
(void) ia64_sn_set_cpu_number(cpuid);
set_cpu0_number = 1;
}
} else
(void) ia64_sn_set_cpu_number(cpuid);
/* /*
* The boot cpu makes this call again after platform initialization is * The boot cpu makes this call again after platform initialization is
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment