aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/ds.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86/kernel/ds.c b/arch/x86/kernel/ds.c
index 71cab3b62dce..443f415441da 100644
--- a/arch/x86/kernel/ds.c
+++ b/arch/x86/kernel/ds.c
@@ -47,9 +47,8 @@ struct ds_configuration {
47 /* Control bit-masks indexed by enum ds_feature: */ 47 /* Control bit-masks indexed by enum ds_feature: */
48 unsigned long ctl[dsf_ctl_max]; 48 unsigned long ctl[dsf_ctl_max];
49}; 49};
50static DEFINE_PER_CPU(struct ds_configuration, ds_cfg_array); 50static struct ds_configuration ds_cfg __read_mostly;
51 51
52#define ds_cfg per_cpu(ds_cfg_array, smp_processor_id())
53 52
54/* Maximal size of a DS configuration: */ 53/* Maximal size of a DS configuration: */
55#define MAX_SIZEOF_DS (12 * 8) 54#define MAX_SIZEOF_DS (12 * 8)
@@ -1268,6 +1267,10 @@ ds_configure(const struct ds_configuration *cfg,
1268 1267
1269void __cpuinit ds_init_intel(struct cpuinfo_x86 *c) 1268void __cpuinit ds_init_intel(struct cpuinfo_x86 *c)
1270{ 1269{
1270 /* Only configure the first cpu. Others are identical. */
1271 if (ds_cfg.name)
1272 return;
1273
1271 switch (c->x86) { 1274 switch (c->x86) {
1272 case 0x6: 1275 case 0x6:
1273 switch (c->x86_model) { 1276 switch (c->x86_model) {