|
@@ -587,6 +587,8 @@ extern void mmu_info(struct seq_file *);
|
|
|
unsigned int dcache_parity_tl1_occurred;
|
|
|
unsigned int icache_parity_tl1_occurred;
|
|
|
|
|
|
+static int ncpus_probed;
|
|
|
+
|
|
|
static int show_cpuinfo(struct seq_file *m, void *__unused)
|
|
|
{
|
|
|
seq_printf(m,
|
|
@@ -595,8 +597,8 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
|
|
|
"promlib\t\t: Version 3 Revision %d\n"
|
|
|
"prom\t\t: %d.%d.%d\n"
|
|
|
"type\t\t: sun4u\n"
|
|
|
- "ncpus probed\t: %ld\n"
|
|
|
- "ncpus active\t: %ld\n"
|
|
|
+ "ncpus probed\t: %d\n"
|
|
|
+ "ncpus active\t: %d\n"
|
|
|
"D$ parity tl1\t: %u\n"
|
|
|
"I$ parity tl1\t: %u\n"
|
|
|
#ifndef CONFIG_SMP
|
|
@@ -610,8 +612,8 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
|
|
|
prom_prev >> 16,
|
|
|
(prom_prev >> 8) & 0xff,
|
|
|
prom_prev & 0xff,
|
|
|
- (long)num_possible_cpus(),
|
|
|
- (long)num_online_cpus(),
|
|
|
+ ncpus_probed,
|
|
|
+ num_online_cpus(),
|
|
|
dcache_parity_tl1_occurred,
|
|
|
icache_parity_tl1_occurred
|
|
|
#ifndef CONFIG_SMP
|
|
@@ -677,6 +679,15 @@ static int __init topology_init(void)
|
|
|
int i, err;
|
|
|
|
|
|
err = -ENOMEM;
|
|
|
+
|
|
|
+ /* Count the number of physically present processors in
|
|
|
+ * the machine, even on uniprocessor, so that /proc/cpuinfo
|
|
|
+ * output is consistent with 2.4.x
|
|
|
+ */
|
|
|
+ ncpus_probed = 0;
|
|
|
+ while (!cpu_find_by_instance(ncpus_probed, NULL, NULL))
|
|
|
+ ncpus_probed++;
|
|
|
+
|
|
|
for (i = 0; i < NR_CPUS; i++) {
|
|
|
if (cpu_possible(i)) {
|
|
|
struct cpu *p = kmalloc(sizeof(*p), GFP_KERNEL);
|