git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pull button into test branch
[pandora-kernel.git]
/
arch
/
ia64
/
sn
/
kernel
/
setup.c
diff --git
a/arch/ia64/sn/kernel/setup.c
b/arch/ia64/sn/kernel/setup.c
index
a934ad0
..
8571e52
100644
(file)
--- a/
arch/ia64/sn/kernel/setup.c
+++ b/
arch/ia64/sn/kernel/setup.c
@@
-580,7
+580,7
@@
void __cpuinit sn_cpu_init(void)
int slice;
int cnode;
int i;
int slice;
int cnode;
int i;
- static int wars_have_been_checked;
+ static int wars_have_been_checked
, set_cpu0_number
;
cpuid = smp_processor_id();
if (cpuid == 0 && IS_MEDUSA()) {
cpuid = smp_processor_id();
if (cpuid == 0 && IS_MEDUSA()) {
@@
-605,8
+605,16
@@
void __cpuinit sn_cpu_init(void)
/*
* Don't check status. The SAL call is not supported on all PROMs
* but a failure is harmless.
/*
* Don't check status. The SAL call is not supported on all PROMs
* 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