diff options
| -rw-r--r-- | arch/alpha/kernel/smp.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index 4b873527ce1c..02c2db08114a 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
| @@ -73,9 +73,6 @@ cpumask_t cpu_online_map; | |||
| 73 | 73 | ||
| 74 | EXPORT_SYMBOL(cpu_online_map); | 74 | EXPORT_SYMBOL(cpu_online_map); |
| 75 | 75 | ||
| 76 | /* cpus reported in the hwrpb */ | ||
| 77 | static unsigned long hwrpb_cpu_present_mask __initdata = 0; | ||
| 78 | |||
| 79 | int smp_num_probed; /* Internal processor count */ | 76 | int smp_num_probed; /* Internal processor count */ |
| 80 | int smp_num_cpus = 1; /* Number that came online. */ | 77 | int smp_num_cpus = 1; /* Number that came online. */ |
| 81 | 78 | ||
| @@ -442,7 +439,7 @@ setup_smp(void) | |||
| 442 | if ((cpu->flags & 0x1cc) == 0x1cc) { | 439 | if ((cpu->flags & 0x1cc) == 0x1cc) { |
| 443 | smp_num_probed++; | 440 | smp_num_probed++; |
| 444 | /* Assume here that "whami" == index */ | 441 | /* Assume here that "whami" == index */ |
| 445 | hwrpb_cpu_present_mask |= (1UL << i); | 442 | cpu_set(i, cpu_possible_map); |
| 446 | cpu->pal_revision = boot_cpu_palrev; | 443 | cpu->pal_revision = boot_cpu_palrev; |
| 447 | } | 444 | } |
| 448 | 445 | ||
| @@ -453,12 +450,12 @@ setup_smp(void) | |||
| 453 | } | 450 | } |
| 454 | } else { | 451 | } else { |
| 455 | smp_num_probed = 1; | 452 | smp_num_probed = 1; |
| 456 | hwrpb_cpu_present_mask = (1UL << boot_cpuid); | 453 | cpu_set(boot_cpuid, cpu_possible_map); |
| 457 | } | 454 | } |
| 458 | cpu_present_mask = cpumask_of_cpu(boot_cpuid); | 455 | cpu_present_mask = cpumask_of_cpu(boot_cpuid); |
| 459 | 456 | ||
| 460 | printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_mask = %lx\n", | 457 | printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_mask = %lx\n", |
| 461 | smp_num_probed, hwrpb_cpu_present_mask); | 458 | smp_num_probed, cpu_possible_map.bits[0]); |
| 462 | } | 459 | } |
| 463 | 460 | ||
| 464 | /* | 461 | /* |
| @@ -467,8 +464,6 @@ setup_smp(void) | |||
| 467 | void __init | 464 | void __init |
| 468 | smp_prepare_cpus(unsigned int max_cpus) | 465 | smp_prepare_cpus(unsigned int max_cpus) |
| 469 | { | 466 | { |
| 470 | int cpu_count, i; | ||
| 471 | |||
| 472 | /* Take care of some initial bookkeeping. */ | 467 | /* Take care of some initial bookkeeping. */ |
| 473 | memset(ipi_data, 0, sizeof(ipi_data)); | 468 | memset(ipi_data, 0, sizeof(ipi_data)); |
| 474 | 469 | ||
| @@ -486,19 +481,7 @@ smp_prepare_cpus(unsigned int max_cpus) | |||
| 486 | 481 | ||
| 487 | printk(KERN_INFO "SMP starting up secondaries.\n"); | 482 | printk(KERN_INFO "SMP starting up secondaries.\n"); |
| 488 | 483 | ||
| 489 | cpu_count = 1; | 484 | smp_num_cpus = smp_num_probed; |
| 490 | for (i = 0; (i < NR_CPUS) && (cpu_count < max_cpus); i++) { | ||
| 491 | if (i == boot_cpuid) | ||
| 492 | continue; | ||
| 493 | |||
| 494 | if (((hwrpb_cpu_present_mask >> i) & 1) == 0) | ||
| 495 | continue; | ||
| 496 | |||
| 497 | cpu_set(i, cpu_possible_map); | ||
| 498 | cpu_count++; | ||
| 499 | } | ||
| 500 | |||
| 501 | smp_num_cpus = cpu_count; | ||
| 502 | } | 485 | } |
| 503 | 486 | ||
| 504 | void __devinit | 487 | void __devinit |
