|
@@ -47,9 +47,8 @@ struct ds_configuration {
|
|
|
/* Control bit-masks indexed by enum ds_feature: */
|
|
|
unsigned long ctl[dsf_ctl_max];
|
|
|
};
|
|
|
-static DEFINE_PER_CPU(struct ds_configuration, ds_cfg_array);
|
|
|
+static struct ds_configuration ds_cfg __read_mostly;
|
|
|
|
|
|
-#define ds_cfg per_cpu(ds_cfg_array, smp_processor_id())
|
|
|
|
|
|
/* Maximal size of a DS configuration: */
|
|
|
#define MAX_SIZEOF_DS (12 * 8)
|
|
@@ -1268,6 +1267,10 @@ ds_configure(const struct ds_configuration *cfg,
|
|
|
|
|
|
void __cpuinit ds_init_intel(struct cpuinfo_x86 *c)
|
|
|
{
|
|
|
+ /* Only configure the first cpu. Others are identical. */
|
|
|
+ if (ds_cfg.name)
|
|
|
+ return;
|
|
|
+
|
|
|
switch (c->x86) {
|
|
|
case 0x6:
|
|
|
switch (c->x86_model) {
|