Re: [PATCH] powerpc/kdump: Fix timeout in crash_kexec_wait_realmode
From: Anton Blanchard <hidden>
Date: 2011-07-06 07:55:29
On Tue, 05 Jul 2011 16:40:10 +1000 Michael Neuling [off-list ref] 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
quoted hunk ↗ jump to hunk
From: Anton Blanchard <redacted> 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 <redacted> Signed-off-by: Michael Neuling <redacted> 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); }