[PATCH] Fix interrupt distribution in ppc970

Mohan Kumar M mohan at in.ibm.com
Wed Mar 7 00:57:54 EST 2007


Hi,

Here comes the revised version of patch to fix the interrupt missing
problem when a kdump kernel is booted with "maxcpus=1" kernel parameter.

In the xics initialization code a check is made to detemine whether
maxcpus kernel parameter is present and if its present then
default_distrib_server variable is initialized to the current boot cpu
id (by default_server variable). So that when ever a kernel is booted
with maxcpus kernel parameter all interrupts are routed to the boot cpu
only.

Tested on POWER5 and JS20 systems.

Any comment?

Signed-off-by: Mohan Kumar M <mohan at in.ibm.com>

---
 arch/powerpc/platforms/pseries/xics.c |    7 +++++++
 1 file changed, 7 insertions(+)

Index: linux-2.6.20/arch/powerpc/platforms/pseries/xics.c
===================================================================
--- linux-2.6.20.orig/arch/powerpc/platforms/pseries/xics.c
+++ linux-2.6.20/arch/powerpc/platforms/pseries/xics.c
@@ -734,6 +734,13 @@ void __init xics_init_IRQ(void)
 skip_gserver_check:
 	of_node_put(np);
 
+	/* Kdump with maxcpus parameter in PPC970xx creates interrupt
+	 * distribution problems. So assign current boot cpu id to
+	 * interrupt distribution server
+	 */
+	if (strstr(saved_command_line, "maxcpus="))
+		default_distrib_server = default_server;
+
 	if (firmware_has_feature(FW_FEATURE_LPAR))
 		ppc_md.get_irq = xics_get_irq_lpar;
 	else




More information about the Linuxppc-dev mailing list