]> err.no Git - linux-2.6/blobdiff - arch/x86_64/kernel/setup.c
[PATCH] Additions to .data.read_mostly section
[linux-2.6] / arch / x86_64 / kernel / setup.c
index b02d921da4f72267cf9e7fb534fccf5a33001456..b356f8e6adfe974f94cd890cd1ddd1d9cc17dd08 100644 (file)
@@ -65,7 +65,7 @@
  * Machine setup..
  */
 
-struct cpuinfo_x86 boot_cpu_data;
+struct cpuinfo_x86 boot_cpu_data __read_mostly;
 
 unsigned long mmu_cr4_features;
 
@@ -645,15 +645,15 @@ void __init setup_arch(char **cmdline_p)
                }
        }
 #endif
-
-       sparse_init();
-
 #ifdef CONFIG_KEXEC
        if (crashk_res.start != crashk_res.end) {
                reserve_bootmem(crashk_res.start,
                        crashk_res.end - crashk_res.start + 1);
        }
 #endif
+
+       sparse_init();
+
        paging_init();
 
        check_ioapic();
@@ -765,8 +765,6 @@ static void __init amd_detect_cmp(struct cpuinfo_x86 *c)
        int cpu = smp_processor_id();
        int node = 0;
        unsigned bits;
-       if (c->x86_num_cores == 1)
-               return;
 
        bits = 0;
        while ((1 << bits) < c->x86_num_cores)
@@ -1076,9 +1074,12 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
 #ifdef CONFIG_X86_MCE
        mcheck_init(c);
 #endif
+       if (c == &boot_cpu_data)
+               mtrr_bp_init();
+       else
+               mtrr_ap_init();
 #ifdef CONFIG_NUMA
-       if (c != &boot_cpu_data)
-               numa_add_cpu(c - cpu_data);
+       numa_add_cpu(smp_processor_id());
 #endif
 }