aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/setup.c')
-rw-r--r--arch/sparc64/kernel/setup.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index bf1849dd9c49..48180531562f 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -587,6 +587,8 @@ extern void mmu_info(struct seq_file *);
587unsigned int dcache_parity_tl1_occurred; 587unsigned int dcache_parity_tl1_occurred;
588unsigned int icache_parity_tl1_occurred; 588unsigned int icache_parity_tl1_occurred;
589 589
590static int ncpus_probed;
591
590static int show_cpuinfo(struct seq_file *m, void *__unused) 592static int show_cpuinfo(struct seq_file *m, void *__unused)
591{ 593{
592 seq_printf(m, 594 seq_printf(m,
@@ -595,8 +597,8 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
595 "promlib\t\t: Version 3 Revision %d\n" 597 "promlib\t\t: Version 3 Revision %d\n"
596 "prom\t\t: %d.%d.%d\n" 598 "prom\t\t: %d.%d.%d\n"
597 "type\t\t: sun4u\n" 599 "type\t\t: sun4u\n"
598 "ncpus probed\t: %ld\n" 600 "ncpus probed\t: %d\n"
599 "ncpus active\t: %ld\n" 601 "ncpus active\t: %d\n"
600 "D$ parity tl1\t: %u\n" 602 "D$ parity tl1\t: %u\n"
601 "I$ parity tl1\t: %u\n" 603 "I$ parity tl1\t: %u\n"
602#ifndef CONFIG_SMP 604#ifndef CONFIG_SMP
@@ -610,8 +612,8 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
610 prom_prev >> 16, 612 prom_prev >> 16,
611 (prom_prev >> 8) & 0xff, 613 (prom_prev >> 8) & 0xff,
612 prom_prev & 0xff, 614 prom_prev & 0xff,
613 (long)num_possible_cpus(), 615 ncpus_probed,
614 (long)num_online_cpus(), 616 num_online_cpus(),
615 dcache_parity_tl1_occurred, 617 dcache_parity_tl1_occurred,
616 icache_parity_tl1_occurred 618 icache_parity_tl1_occurred
617#ifndef CONFIG_SMP 619#ifndef CONFIG_SMP
@@ -677,6 +679,15 @@ static int __init topology_init(void)
677 int i, err; 679 int i, err;
678 680
679 err = -ENOMEM; 681 err = -ENOMEM;
682
683 /* Count the number of physically present processors in
684 * the machine, even on uniprocessor, so that /proc/cpuinfo
685 * output is consistent with 2.4.x
686 */
687 ncpus_probed = 0;
688 while (!cpu_find_by_instance(ncpus_probed, NULL, NULL))
689 ncpus_probed++;
690
680 for (i = 0; i < NR_CPUS; i++) { 691 for (i = 0; i < NR_CPUS; i++) {
681 if (cpu_possible(i)) { 692 if (cpu_possible(i)) {
682 struct cpu *p = kmalloc(sizeof(*p), GFP_KERNEL); 693 struct cpu *p = kmalloc(sizeof(*p), GFP_KERNEL);