diff options
Diffstat (limited to 'arch/powerpc/kernel/setup-common.c')
-rw-r--r-- | arch/powerpc/kernel/setup-common.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c index ee0e0553ae0e..3d261c071fc8 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c | |||
@@ -437,6 +437,7 @@ void __init smp_setup_cpu_maps(void) | |||
437 | 437 | ||
438 | while ((dn = of_find_node_by_type(dn, "cpu")) && cpu < nr_cpu_ids) { | 438 | while ((dn = of_find_node_by_type(dn, "cpu")) && cpu < nr_cpu_ids) { |
439 | const __be32 *intserv; | 439 | const __be32 *intserv; |
440 | __be32 cpu_be; | ||
440 | int j, len; | 441 | int j, len; |
441 | 442 | ||
442 | DBG(" * %s...\n", dn->full_name); | 443 | DBG(" * %s...\n", dn->full_name); |
@@ -450,8 +451,10 @@ void __init smp_setup_cpu_maps(void) | |||
450 | } else { | 451 | } else { |
451 | DBG(" no ibm,ppc-interrupt-server#s -> 1 thread\n"); | 452 | DBG(" no ibm,ppc-interrupt-server#s -> 1 thread\n"); |
452 | intserv = of_get_property(dn, "reg", NULL); | 453 | intserv = of_get_property(dn, "reg", NULL); |
453 | if (!intserv) | 454 | if (!intserv) { |
454 | intserv = &cpu; /* assume logical == phys */ | 455 | cpu_be = cpu_to_be32(cpu); |
456 | intserv = &cpu_be; /* assume logical == phys */ | ||
457 | } | ||
455 | } | 458 | } |
456 | 459 | ||
457 | for (j = 0; j < nthreads && cpu < nr_cpu_ids; j++) { | 460 | for (j = 0; j < nthreads && cpu < nr_cpu_ids; j++) { |