ACPI: Discard invalid elements in _PSS package
[safe/jmp/linux-2.6] / arch / i386 / kernel / cpu / cpufreq / acpi-cpufreq.c
index 563dcc8..9ba2b69 100644 (file)
@@ -420,6 +420,7 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
                msr =
                    (u32) perf->states[next_perf_state].
                    control & INTEL_MSR_RANGE;
+               cmd.val = get_cur_val(online_policy_cpus);
                cmd.val = (cmd.val & ~INTEL_MSR_RANGE) | msr;
                break;
        case SYSTEM_IO_CAPABLE:
@@ -667,8 +668,8 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
        data->max_freq = perf->states[0].core_frequency * 1000;
        /* table init */
        for (i=0; i<perf->state_count; i++) {
-               if (i>0 && perf->states[i].core_frequency ==
-                   perf->states[i-1].core_frequency)
+               if (i>0 && perf->states[i].core_frequency >=
+                   data->freq_table[valid_states-1].frequency / 1000)
                        continue;
 
                data->freq_table[valid_states].index = i;