x86/oprofile: fix initialization of arch_perfmon for core_i7
authorRobert Richter <robert.richter@amd.com>
Fri, 12 Jun 2009 16:32:07 +0000 (18:32 +0200)
committerRobert Richter <robert.richter@amd.com>
Fri, 12 Jun 2009 16:43:51 +0000 (18:43 +0200)
Commit:

 e419294 x86/oprofile: moving arch_perfmon counter setup to op_x86_model_spec.init

introduced a bug in the initialization of core_i7 leading to the
incorrect model setup to &op_ppro_spec. This patch fixes this.

Signed-off-by: Robert Richter <robert.richter@amd.com>
arch/x86/oprofile/nmi_int.c

index 7826dfc..28ee490 100644 (file)
@@ -406,6 +406,7 @@ module_param_call(cpu_type, force_cpu_type, NULL, NULL, 0);
 static int __init ppro_init(char **cpu_type)
 {
        __u8 cpu_model = boot_cpu_data.x86_model;
 static int __init ppro_init(char **cpu_type)
 {
        __u8 cpu_model = boot_cpu_data.x86_model;
+       struct op_x86_model_spec const *spec = &op_ppro_spec;   /* default */
 
        if (force_arch_perfmon && cpu_has_arch_perfmon)
                return 0;
 
        if (force_arch_perfmon && cpu_has_arch_perfmon)
                return 0;
@@ -432,7 +433,7 @@ static int __init ppro_init(char **cpu_type)
                *cpu_type = "i386/core_2";
                break;
        case 26:
                *cpu_type = "i386/core_2";
                break;
        case 26:
-               model = &op_arch_perfmon_spec;
+               spec = &op_arch_perfmon_spec;
                *cpu_type = "i386/core_i7";
                break;
        case 28:
                *cpu_type = "i386/core_i7";
                break;
        case 28:
@@ -443,7 +444,7 @@ static int __init ppro_init(char **cpu_type)
                return 0;
        }
 
                return 0;
        }
 
-       model = &op_ppro_spec;
+       model = spec;
        return 1;
 }
 
        return 1;
 }