vserver 1.9.5.x5
[linux-2.6.git] / arch / i386 / kernel / cpu / proc.c
index bdd1328..0fd2a0a 100644 (file)
@@ -25,10 +25,10 @@ static int show_cpuinfo(struct seq_file *m, void *v)
                "fxsr", "sse", "sse2", "ss", "ht", "tm", "ia64", "pbe",
 
                /* AMD-defined */
-               NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+               "pni", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                NULL, NULL, NULL, "syscall", NULL, NULL, NULL, NULL,
                NULL, NULL, NULL, "mp", "nx", NULL, "mmxext", NULL,
-               NULL, NULL, NULL, NULL, NULL, "lm", "3dnowext", "3dnow",
+               NULL, "fxsr_opt", NULL, NULL, NULL, "lm", "3dnowext", "3dnow",
 
                /* Transmeta-defined */
                "recovery", "longrun", NULL, "lrti", NULL, NULL, NULL, NULL,
@@ -45,7 +45,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
 
                /* Intel-defined (#2) */
                "pni", NULL, NULL, "monitor", "ds_cpl", NULL, NULL, "est",
-               "tm2", NULL, "cid", NULL, NULL, NULL, "xtpr", NULL,
+               "tm2", NULL, "cid", NULL, NULL, "cx16", "xtpr", NULL,
                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 
@@ -54,6 +54,12 @@ static int show_cpuinfo(struct seq_file *m, void *v)
                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+
+               /* AMD-defined (#2) */
+               "lahf_lm", "cmp_legacy", NULL, NULL, NULL, NULL, NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+               NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
        };
        struct cpuinfo_x86 *c = v;
        int i, n = c - cpu_data;
@@ -88,11 +94,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)
        if (c->x86_cache_size >= 0)
                seq_printf(m, "cache size\t: %d KB\n", c->x86_cache_size);
 #ifdef CONFIG_X86_HT
-       if (cpu_has_ht) {
-               extern int phys_proc_id[NR_CPUS];
-               seq_printf(m, "physical id\t: %d\n", phys_proc_id[n]);
-               seq_printf(m, "siblings\t: %d\n", smp_num_siblings);
-       }
+       seq_printf(m, "physical id\t: %d\n", phys_proc_id[n]);
+       seq_printf(m, "siblings\t: %d\n", c->x86_num_cores * smp_num_siblings);
 #endif
        
        /* We use exception 16 if we have hardware math and we've either seen it or the CPU claims it is internal */
@@ -121,8 +124,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)
                        seq_printf(m, " %s", x86_cap_flags[i]);
 
        seq_printf(m, "\nbogomips\t: %lu.%02lu\n\n",
-                    c->loops_per_jiffy/(500000/HZ),
-                    (c->loops_per_jiffy/(5000/HZ)) % 100);
+                    HZ*(c->loops_per_jiffy >> 3)/62500,
+                    (HZ*(c->loops_per_jiffy >> 3)/625) % 100);
        return 0;
 }