[MIPS] Show actual CPU information in /proc/cpuinfo
authorKarl-Johan Karlsson <creideiki+linux-mips@ferretporn.se>
Sat, 7 Oct 2006 23:15:02 +0000 (01:15 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Sun, 8 Oct 2006 01:38:27 +0000 (02:38 +0100)
Currently, /proc/cpuinfo contains several copies of the information for
whatever processor we happen to be scheduled on. This patch makes it contain
the proper information for each CPU, which is particularly useful on mixed
R12k/R10k IP27 machines.

Signed-off-by: Karl-Johan Karlsson <creideiki@lysator.liu.se>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/proc.c

index d8beef1079020da34071e338ec3f08ab386a882b..46ee5a68ab13bed851b1a0e3a4459d830830f2b3 100644 (file)
@@ -89,9 +89,9 @@ static const char *cpu_name[] = {
 
 static int show_cpuinfo(struct seq_file *m, void *v)
 {
-       unsigned int version = current_cpu_data.processor_id;
-       unsigned int fp_vers = current_cpu_data.fpu_id;
        unsigned long n = (unsigned long) v - 1;
+       unsigned int version = cpu_data[n].processor_id;
+       unsigned int fp_vers = cpu_data[n].fpu_id;
        char fmt [64];
 
 #ifdef CONFIG_SMP
@@ -108,8 +108,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)
        seq_printf(m, "processor\t\t: %ld\n", n);
        sprintf(fmt, "cpu model\t\t: %%s V%%d.%%d%s\n",
                cpu_has_fpu ? "  FPU V%d.%d" : "");
-       seq_printf(m, fmt, cpu_name[current_cpu_data.cputype <= CPU_LAST ?
-                                   current_cpu_data.cputype : CPU_UNKNOWN],
+       seq_printf(m, fmt, cpu_name[cpu_data[n].cputype <= CPU_LAST ?
+                                   cpu_data[n].cputype : CPU_UNKNOWN],
                                   (version >> 4) & 0x0f, version & 0x0f,
                                   (fp_vers >> 4) & 0x0f, fp_vers & 0x0f);
        seq_printf(m, "BogoMIPS\t\t: %lu.%02lu\n",
@@ -118,7 +118,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
        seq_printf(m, "wait instruction\t: %s\n", cpu_wait ? "yes" : "no");
        seq_printf(m, "microsecond timers\t: %s\n",
                      cpu_has_counter ? "yes" : "no");
-       seq_printf(m, "tlb_entries\t\t: %d\n", current_cpu_data.tlbsize);
+       seq_printf(m, "tlb_entries\t\t: %d\n", cpu_data[n].tlbsize);
        seq_printf(m, "extra interrupt vector\t: %s\n",
                      cpu_has_divec ? "yes" : "no");
        seq_printf(m, "hardware watchpoint\t: %s\n",