aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHaren Myneni <haren@us.ibm.com>2005-12-27 18:51:07 -0500
committerPaul Mackerras <paulus@samba.org>2006-01-08 23:35:01 -0500
commit9da5cad61c13fbdc7fc7aa425f03a15da9d0cb43 (patch)
tree65cf4e8e7b346079c7df7f4bad54b7d02e6ee692 /arch
parent79e7bac0d6ad56d62e2364313b5e5e5950c7385d (diff)
[PATCH] powerpc: Fix search for the main interrupt controller
At present, we are not looking at all interrupt controller nodes in the device tree even though the proper node was not found. This is causing the system panic. The attached patch will scan all nodes until it finds the proper interrupt controller type. Signed-off-by: Haren Myneni <haren@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/platforms/pseries/setup.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 2cb082871210..38b631ceaec9 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -324,15 +324,18 @@ static void __init pSeries_discover_pic(void)
324 ppc64_interrupt_controller = IC_INVALID; 324 ppc64_interrupt_controller = IC_INVALID;
325 for (np = NULL; (np = of_find_node_by_name(np, "interrupt-controller"));) { 325 for (np = NULL; (np = of_find_node_by_name(np, "interrupt-controller"));) {
326 typep = (char *)get_property(np, "compatible", NULL); 326 typep = (char *)get_property(np, "compatible", NULL);
327 if (strstr(typep, "open-pic")) 327 if (strstr(typep, "open-pic")) {
328 ppc64_interrupt_controller = IC_OPEN_PIC; 328 ppc64_interrupt_controller = IC_OPEN_PIC;
329 else if (strstr(typep, "ppc-xicp")) 329 break;
330 } else if (strstr(typep, "ppc-xicp")) {
330 ppc64_interrupt_controller = IC_PPC_XIC; 331 ppc64_interrupt_controller = IC_PPC_XIC;
331 else 332 break;
332 printk("pSeries_discover_pic: failed to recognize" 333 }
333 " interrupt-controller\n");
334 break;
335 } 334 }
335 if (ppc64_interrupt_controller == IC_INVALID)
336 printk("pSeries_discover_pic: failed to recognize"
337 " interrupt-controller\n");
338
336} 339}
337 340
338static void pSeries_mach_cpu_die(void) 341static void pSeries_mach_cpu_die(void)