提交 356a5c1c 编写于 作者: K Keith Owens 提交者: Tony Luck

[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: NKeith Owens <kaos@sgi.com>
Signed-off-by: NTony Luck <tony.luck@intel.com>
上级 907d91d7
...@@ -963,7 +963,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs, ...@@ -963,7 +963,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
*/ */
static void static void
ia64_wait_for_slaves(int monarch) ia64_wait_for_slaves(int monarch, const char *type)
{ {
int c, wait = 0, missing = 0; int c, wait = 0, missing = 0;
for_each_online_cpu(c) { for_each_online_cpu(c) {
...@@ -989,7 +989,7 @@ ia64_wait_for_slaves(int monarch) ...@@ -989,7 +989,7 @@ ia64_wait_for_slaves(int monarch)
} }
if (!missing) if (!missing)
goto all_in; goto all_in;
printk(KERN_INFO "OS MCA slave did not rendezvous on cpu"); printk(KERN_INFO "OS %s slave did not rendezvous on cpu", type);
for_each_online_cpu(c) { for_each_online_cpu(c) {
if (c == monarch) if (c == monarch)
continue; continue;
...@@ -1000,7 +1000,7 @@ ia64_wait_for_slaves(int monarch) ...@@ -1000,7 +1000,7 @@ ia64_wait_for_slaves(int monarch)
return; return;
all_in: all_in:
printk(KERN_INFO "All OS MCA slaves have reached rendezvous\n"); printk(KERN_INFO "All OS %s slaves have reached rendezvous\n", type);
return; return;
} }
...@@ -1038,7 +1038,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, ...@@ -1038,7 +1038,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw,
if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0)
== NOTIFY_STOP) == NOTIFY_STOP)
ia64_mca_spin(__FUNCTION__); ia64_mca_spin(__FUNCTION__);
ia64_wait_for_slaves(cpu); ia64_wait_for_slaves(cpu, "MCA");
/* Wakeup all the processors which are spinning in the rendezvous loop. /* Wakeup all the processors which are spinning in the rendezvous loop.
* They will leave SAL, then spin in the OS with interrupts disabled * 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,7 +1429,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw,
*/ */
printk("Delaying for 5 seconds...\n"); printk("Delaying for 5 seconds...\n");
udelay(5*1000000); udelay(5*1000000);
ia64_wait_for_slaves(cpu); ia64_wait_for_slaves(cpu, "INIT");
/* If nobody intercepts DIE_INIT_MONARCH_PROCESS then we drop through /* If nobody intercepts DIE_INIT_MONARCH_PROCESS then we drop through
* to default_monarch_init_process() above and just print all the * to default_monarch_init_process() above and just print all the
* tasks. * tasks.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册