[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>
This commit is contained in:
@@ -963,7 +963,7 @@ no_mod:
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
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)
|
|||||||
}
|
}
|
||||||
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)
|
|||||||
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,
|
|||||||
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,
|
|||||||
*/
|
*/
|
||||||
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.
|
||||||
|
Reference in New Issue
Block a user