--- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c @@ -400,6 +400,8 @@ static int acpi_cpufreq_target(struct cp online_policy_cpus = policy->cpus; #endif + freqs.old = extract_freq(cmd.val, data); + freqs.new = data->freq_table[next_state].frequency; next_perf_state = data->freq_table[next_state].index; if (perf->state == next_perf_state) { if (unlikely(data->resume)) { @@ -439,8 +441,6 @@ static int acpi_cpufreq_target(struct cp else cpu_set(policy->cpu, cmd.mask); - freqs.old = data->freq_table[perf->state].frequency; - freqs.new = data->freq_table[next_perf_state].frequency; for_each_cpu_mask(i, cmd.mask) { freqs.cpu = i; cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);