diff options
Diffstat (limited to 'arch/sparc64/kernel/setup.c')
-rw-r--r-- | arch/sparc64/kernel/setup.c | 19 |
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 *); | |||
587 | unsigned int dcache_parity_tl1_occurred; | 587 | unsigned int dcache_parity_tl1_occurred; |
588 | unsigned int icache_parity_tl1_occurred; | 588 | unsigned int icache_parity_tl1_occurred; |
589 | 589 | ||
590 | static int ncpus_probed; | ||
591 | |||
590 | static int show_cpuinfo(struct seq_file *m, void *__unused) | 592 | static 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); |