<br>
<br><font size=2 face="sans-serif">- During CPU(s) hang scenarios, kdump
could not stop these CPUs. However, the user could invoke soft-reset to
shoot down CPUs reliably. But, when the debugger is enabled, these CPUs
are returned to hang state after they exited from the debugger. This patch
fixes this issue by calling crash_kexec_secondary() before returns to previous
state. </font>
<br>
<br>
<br><font size=2 face="sans-serif">Signed-off-by: Haren Myneni &lt;haren@us.ibm.com&gt;</font>
<br>
<br><font size=2><tt>--- 2617-rc1/arch/powerpc/kernel/traps.c.orig &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2006-04-05
13:25:22.000000000 -0700<br>
+++ 2617-rc1/arch/powerpc/kernel/traps.c &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; 2006-04-05 13:25:33.000000000 -0700<br>
@@ -206,6 +206,16 @@ void system_reset_exception(struct pt_re<br>
 <br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;die(&quot;System
Reset&quot;, regs, SIGABRT);<br>
 <br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
/*<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;* Some CPUs which got released from debugger will execute this path.<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;* These CPUs entered debugger first time via soft-reset - Means,<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;* could be possible that these CPUs may not repond to an IPI later.<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;* Therefore, has to call kdump func directly.<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;* Not a problem if we exited from debugger to recover. In this case<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;* there will not be any primary kexec CPU. Hence, will be returned.<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;*/<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
crash_kexec_secondary(regs);<br>
+<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/*
Must die if the interrupt is not recoverable */<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if
(!(regs-&gt;msr &amp; MSR_RI))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
panic(&quot;Unrecoverable System Reset&quot;);<br>
</tt></font>