summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorHaren Myneni2005-12-28 00:51:07 +0100
committerPaul Mackerras2006-01-09 05:35:01 +0100
commit9da5cad61c13fbdc7fc7aa425f03a15da9d0cb43 (patch)
tree65cf4e8e7b346079c7df7f4bad54b7d02e6ee692 /arch/powerpc
parent[PATCH] powerpc: Call find_legacy_serial_ports() if we enable CONFIG_SERIAL_8250 (diff)
downloadkernel-qcow2-linux-9da5cad61c13fbdc7fc7aa425f03a15da9d0cb43.tar.gz
kernel-qcow2-linux-9da5cad61c13fbdc7fc7aa425f03a15da9d0cb43.tar.xz
kernel-qcow2-linux-9da5cad61c13fbdc7fc7aa425f03a15da9d0cb43.zip
[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/powerpc')
-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)
ppc64_interrupt_controller = IC_INVALID;
for (np = NULL; (np = of_find_node_by_name(np, "interrupt-controller"));) {
typep = (char *)get_property(np, "compatible", NULL);
- if (strstr(typep, "open-pic"))
+ if (strstr(typep, "open-pic")) {
ppc64_interrupt_controller = IC_OPEN_PIC;
- else if (strstr(typep, "ppc-xicp"))
+ break;
+ } else if (strstr(typep, "ppc-xicp")) {
ppc64_interrupt_controller = IC_PPC_XIC;
- else
- printk("pSeries_discover_pic: failed to recognize"
- " interrupt-controller\n");
- break;
+ break;
+ }
}
+ if (ppc64_interrupt_controller == IC_INVALID)
+ printk("pSeries_discover_pic: failed to recognize"
+ " interrupt-controller\n");
+
}
static void pSeries_mach_cpu_die(void)