diff options
author | Keith Owens <kaos@sgi.com> | 2006-04-11 00:59:41 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2006-04-13 17:57:18 -0400 |
commit | 356a5c1c6fdfb8eed6dbb3979d90c7cc7060017a (patch) | |
tree | ec6a44500c01c902245e10dac7a3dc8a7da8b060 /arch | |
parent | 907d91d708d9999bec0185d630062576ac4181a7 (diff) |
[IA64] ia64_wait_for_slaves() incorrectly reports MCA
ia64_wait_for_slaves() was changed in 2.6.17-rc1 to report the slave
state. It incorrectly assumes that all slaves are for MCA, but
ia64_wait_for_slaves() is also called from the INIT monarch handler.
The existing message is very misleading, so correct it.
Signed-off-by: Keith Owens <kaos@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/kernel/mca.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 5e6fdbe78bcd..6a0880639bc9 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -963,7 +963,7 @@ no_mod: | |||
963 | */ | 963 | */ |
964 | 964 | ||
965 | static void | 965 | static void |
966 | ia64_wait_for_slaves(int monarch) | 966 | ia64_wait_for_slaves(int monarch, const char *type) |
967 | { | 967 | { |
968 | int c, wait = 0, missing = 0; | 968 | int c, wait = 0, missing = 0; |
969 | for_each_online_cpu(c) { | 969 | for_each_online_cpu(c) { |
@@ -989,7 +989,7 @@ ia64_wait_for_slaves(int monarch) | |||
989 | } | 989 | } |
990 | if (!missing) | 990 | if (!missing) |
991 | goto all_in; | 991 | goto all_in; |
992 | printk(KERN_INFO "OS MCA slave did not rendezvous on cpu"); | 992 | printk(KERN_INFO "OS %s slave did not rendezvous on cpu", type); |
993 | for_each_online_cpu(c) { | 993 | for_each_online_cpu(c) { |
994 | if (c == monarch) | 994 | if (c == monarch) |
995 | continue; | 995 | continue; |
@@ -1000,7 +1000,7 @@ ia64_wait_for_slaves(int monarch) | |||
1000 | return; | 1000 | return; |
1001 | 1001 | ||
1002 | all_in: | 1002 | all_in: |
1003 | printk(KERN_INFO "All OS MCA slaves have reached rendezvous\n"); | 1003 | printk(KERN_INFO "All OS %s slaves have reached rendezvous\n", type); |
1004 | return; | 1004 | return; |
1005 | } | 1005 | } |
1006 | 1006 | ||
@@ -1038,7 +1038,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1038 | if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) | 1038 | if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) |
1039 | == NOTIFY_STOP) | 1039 | == NOTIFY_STOP) |
1040 | ia64_mca_spin(__FUNCTION__); | 1040 | ia64_mca_spin(__FUNCTION__); |
1041 | ia64_wait_for_slaves(cpu); | 1041 | ia64_wait_for_slaves(cpu, "MCA"); |
1042 | 1042 | ||
1043 | /* Wakeup all the processors which are spinning in the rendezvous loop. | 1043 | /* Wakeup all the processors which are spinning in the rendezvous loop. |
1044 | * They will leave SAL, then spin in the OS with interrupts disabled | 1044 | * They will leave SAL, then spin in the OS with interrupts disabled |
@@ -1429,7 +1429,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1429 | */ | 1429 | */ |
1430 | printk("Delaying for 5 seconds...\n"); | 1430 | printk("Delaying for 5 seconds...\n"); |
1431 | udelay(5*1000000); | 1431 | udelay(5*1000000); |
1432 | ia64_wait_for_slaves(cpu); | 1432 | ia64_wait_for_slaves(cpu, "INIT"); |
1433 | /* If nobody intercepts DIE_INIT_MONARCH_PROCESS then we drop through | 1433 | /* If nobody intercepts DIE_INIT_MONARCH_PROCESS then we drop through |
1434 | * to default_monarch_init_process() above and just print all the | 1434 | * to default_monarch_init_process() above and just print all the |
1435 | * tasks. | 1435 | * tasks. |