Message ID | 29259.1309848010@neuling.org (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | 63f21a56f1cc0b800a4c00349c59448f82473d19 |
Headers | show |
On Tue, 05 Jul 2011 16:40:10 +1000 Michael Neuling <mikey@neuling.org> wrote: > The existing code it pretty ugly. How about we clean it up even more > like this? Looks good and it passed my kdump test cases. Anton > From: Anton Blanchard <anton@samba.org> > > We check for timeout expiry in the outer loop, but we also need to > check it in the inner loop or we can lock up forever waiting for a > CPU to hit real mode. > > Signed-off-by: Anton Blanchard <anton@samba.org> > Signed-off-by: Michael Neuling <mikey@neuling.org> > Cc: <stable@kernel.org> > > diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c > index 4e6ee94..cc6a9d5 100644 > --- a/arch/powerpc/kernel/crash.c > +++ b/arch/powerpc/kernel/crash.c > @@ -242,12 +242,8 @@ static void crash_kexec_wait_realmode(int cpu) > > while (paca[i].kexec_state < KEXEC_STATE_REAL_MODE) { > barrier(); > - if (!cpu_possible(i)) { > + if (!cpu_possible(i) || !cpu_online(i) || > (msecs <= 0)) break; > - } > - if (!cpu_online(i)) { > - break; > - } > msecs--; > mdelay(1); > } >
diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c index 4e6ee94..cc6a9d5 100644 --- a/arch/powerpc/kernel/crash.c +++ b/arch/powerpc/kernel/crash.c @@ -242,12 +242,8 @@ static void crash_kexec_wait_realmode(int cpu) while (paca[i].kexec_state < KEXEC_STATE_REAL_MODE) { barrier(); - if (!cpu_possible(i)) { + if (!cpu_possible(i) || !cpu_online(i) || (msecs <= 0)) break; - } - if (!cpu_online(i)) { - break; - } msecs--; mdelay(1); }