Subject: [PATCH] kdump:

From: Haren Myneni <[email-masked]>
Date: Wed, 22 Mar 2006 21:00:49 -0800

Paul, Please send this to upstream if you are OK with it. Tested this 
one and kdump-dma-fault-fix.patch on P5, P4 (non-lpar), JS21 and JS20.

Thanks
Haren

Some times, the kexec CPU is not reponding to an IPI during kdump boot. 
It is causing the system in xmon. This patch clears and EOI IPI for 
kexec CPU as well before the kdump boot started.

Signed-off-by: Haren Myneni <[email-masked]>

--- 2616-git5-k1/arch/powerpc/platforms/pseries/xics.c.orig	2006-04-04 19:27:24.000000000 -0700
+++ 2616-git5-k1/arch/powerpc/platforms/pseries/xics.c	2006-04-04 19:54:52.000000000 -0700
@@ -641,22 +641,27 @@ void xics_teardown_cpu(int secondary)
 	iosync();
 
 	/*
+	 * Clear IPI
+	 */
+	ops->qirr_info(cpu, 0xff);
+	/*
+	 * we need to EOI the IPI if we got here from kexec down IPI
+	 *
+	 * probably need to check all the other interrupts too
+	 * should we be flagging idle loop instead?
+	 * or creating some task to be scheduled?
+	 */
+        ops->xirr_info_set(cpu, XICS_IPI);
+
+	/*
 	 * Some machines need to have at least one cpu in the GIQ,
 	 * so leave the master cpu in the group.
 	 */
-	if (secondary) {
-		/*
-		 * we need to EOI the IPI if we got here from kexec down IPI
-		 *
-		 * probably need to check all the other interrupts too
-		 * should we be flagging idle loop instead?
-		 * or creating some task to be scheduled?
-		 */
-		ops->xirr_info_set(cpu, XICS_IPI);
+	if (secondary) 
 		rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE,
 			(1UL << interrupt_server_size) - 1 -
 			default_distrib_server, 0);
-	}
+	
 }
 
 #ifdef CONFIG_HOTPLUG_CPU