diff options
author | Haren Myneni <haren@us.ibm.com> | 2005-12-27 15:51:07 -0800 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-01-09 15:35:01 +1100 |
commit | 9da5cad61c13fbdc7fc7aa425f03a15da9d0cb43 (patch) | |
tree | 65cf4e8e7b346079c7df7f4bad54b7d02e6ee692 /arch | |
parent | 79e7bac0d6ad56d62e2364313b5e5e5950c7385d (diff) | |
download | linux-3.10-9da5cad61c13fbdc7fc7aa425f03a15da9d0cb43.tar.gz linux-3.10-9da5cad61c13fbdc7fc7aa425f03a15da9d0cb43.tar.bz2 linux-3.10-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')
-rw-r--r-- | arch/powerpc/platforms/pseries/setup.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 2cb08287121..38b631ceaec 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) |