From 62ff5ac59360c88869dbafc45211207c4bf62f93 Mon Sep 17 00:00:00 2001 From: Russ Anderson Date: Thu, 20 Sep 2007 13:59:12 -0500 Subject: [PATCH] --- yaml --- r: 69151 b: refs/heads/master c: 2bc5c282999af41042c2b703bf3a58ca1d7e3ee2 h: refs/heads/master i: 69149: 49cabd642acba87463a3cee9eb8be3e23ff1d78c 69147: e10002f5829c55c978b431178954d63c3197b218 69143: 50ef5c28db1be5eee5aacb7b652588f1743cd763 69135: ff5595cdb8fda25407683ef9cd60ed0d93a99c8c 69119: a8e79815372c8abafaf7b11e48be2990605b172c v: v3 --- [refs] | 2 +- trunk/arch/ia64/kernel/mca.c | 41 +++++++++++++++++------------------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/[refs] b/[refs] index 5e48a5ec2156..5e41d2e1a249 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 28eda5b8b434b65e5feb0c58a7477f3f290d72d4 +refs/heads/master: 2bc5c282999af41042c2b703bf3a58ca1d7e3ee2 diff --git a/trunk/arch/ia64/kernel/mca.c b/trunk/arch/ia64/kernel/mca.c index 63b73f3d4c9f..92367faecbbf 100644 --- a/trunk/arch/ia64/kernel/mca.c +++ b/trunk/arch/ia64/kernel/mca.c @@ -1135,30 +1135,27 @@ ia64_mca_modify_original_stack(struct pt_regs *regs, static void ia64_wait_for_slaves(int monarch, const char *type) { - int c, wait = 0, missing = 0; - for_each_online_cpu(c) { - if (c == monarch) - continue; - if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) { - udelay(1000); /* short wait first */ - wait = 1; - break; - } - } - if (!wait) - goto all_in; - for_each_online_cpu(c) { - if (c == monarch) - continue; - if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) { - udelay(5*1000000); /* wait 5 seconds for slaves (arbitrary) */ - if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) - missing = 1; - break; + int c, i , wait; + + /* + * wait 5 seconds total for slaves (arbitrary) + */ + for (i = 0; i < 5000; i++) { + wait = 0; + for_each_online_cpu(c) { + if (c == monarch) + continue; + if (ia64_mc_info.imi_rendez_checkin[c] + == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) { + udelay(1000); /* short wait */ + wait = 1; + break; + } } + if (!wait) + goto all_in; } - if (!missing) - goto all_in; + /* * Maybe slave(s) dead. Print buffered messages immediately. */