Power management fixes for 5.1-rc3
- Fix the ACPI CPPC library to actually follow the specification when decoding the guaranteed performance register information and make the intel_pstate driver to fall back to the nominal frequency when reporting the base frequency if the guaranteed performance register information is not there (Srinivas Pandruvada). - Fix use-after-free in the exit callback of the scpi-cpufreq left after an update during the 5.0 development cycle (Vincent Stehlé). -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCAAGBQJcnrgVAAoJEILEb/54YlRxd2gP+wVnP59rau3k6ek+b8E3c0bR zPTUY4dKH+26gvqNWC1BR65annmUsBB0ow440Gvcr4Azk5H++xtTNmBLHyN3UJYx V8ioKzOyKAUZ7OvpH2NCdV21kM8D8XpKM2E3+4GtqoxPhEu9SnxMOzk4Cqj462gy ABVd9wE+okH4PFdtFL6GIhInqlKwgvRX/r/ssrb+dVJok0O6qjlWBOiDqfx18uXY Z3nf/dpsscVoQKp28FAcXTlCY1Cq9yhd+2BVyA01FiJ3t3P2tyS0CWnSWxEaDgJR AvrBibv9pKLGkH7MfgozQR9AOHHWFeyytPlbvgvOUjhr/Mg8lnZJXIFdUyKLk6hE VRCIowqNGgEQxDwFFMlDKl8te7N9ay2K84bwnladI+YVKP4r3DNepD60dlBy90lh f2+PO+l8Xs+8HGT5uNRk+0gbKL9ZZ/9GsQ0cON0KAO5B5XVJMk/zz+V6/L0jsIeN sdRMiv+eia/x3uDX9PA4YXX/wRIOqgZSR6QZP2+xibPMdG14DU/tGPKUmPerlAo5 SqA8g2TR45U+fcX+dMvMIscuXVVy3/NuuLDEX6WVx4QxXNvgUdDratpl05wSrYQ3 nJ5WERblXUr/GX3MtWCP2om0/xph3XFJiFpMxLF0NFVJ+EK/+YFoBhDD4gLqx0id rr47o4gjU0BvVL/hdU9f =mhtx -----END PGP SIGNATURE----- Merge tag 'pm-5.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management fixes from Rafael Wysocki: "These fix CPU base frequency reporting in the intel_pstate driver and a use-after-free in the scpi-cpufreq driver. Specifics: - Fix the ACPI CPPC library to actually follow the specification when decoding the guaranteed performance register information and make the intel_pstate driver to fall back to the nominal frequency when reporting the base frequency if the guaranteed performance register information is not there (Srinivas Pandruvada). - Fix use-after-free in the exit callback of the scpi-cpufreq left after an update during the 5.0 development cycle (Vincent Stehlé)" * tag 'pm-5.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: scpi: Fix use after free cpufreq: intel_pstate: Also use CPPC nominal_perf for base_frequency ACPI / CPPC: Fix guaranteed performance handling
This commit is contained in:
commit
8e377a1c7e
|
@ -1150,8 +1150,13 @@ int cppc_get_perf_caps(int cpunum, struct cppc_perf_caps *perf_caps)
|
|||
cpc_read(cpunum, nominal_reg, &nom);
|
||||
perf_caps->nominal_perf = nom;
|
||||
|
||||
cpc_read(cpunum, guaranteed_reg, &guaranteed);
|
||||
perf_caps->guaranteed_perf = guaranteed;
|
||||
if (guaranteed_reg->type != ACPI_TYPE_BUFFER ||
|
||||
IS_NULL_REG(&guaranteed_reg->cpc_entry.reg)) {
|
||||
perf_caps->guaranteed_perf = 0;
|
||||
} else {
|
||||
cpc_read(cpunum, guaranteed_reg, &guaranteed);
|
||||
perf_caps->guaranteed_perf = guaranteed;
|
||||
}
|
||||
|
||||
cpc_read(cpunum, lowest_non_linear_reg, &min_nonlinear);
|
||||
perf_caps->lowest_nonlinear_perf = min_nonlinear;
|
||||
|
|
|
@ -385,7 +385,10 @@ static int intel_pstate_get_cppc_guranteed(int cpu)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
return cppc_perf.guaranteed_perf;
|
||||
if (cppc_perf.guaranteed_perf)
|
||||
return cppc_perf.guaranteed_perf;
|
||||
|
||||
return cppc_perf.nominal_perf;
|
||||
}
|
||||
|
||||
#else /* CONFIG_ACPI_CPPC_LIB */
|
||||
|
|
|
@ -189,8 +189,8 @@ static int scpi_cpufreq_exit(struct cpufreq_policy *policy)
|
|||
|
||||
clk_put(priv->clk);
|
||||
dev_pm_opp_free_cpufreq_table(priv->cpu_dev, &policy->freq_table);
|
||||
kfree(priv);
|
||||
dev_pm_opp_remove_all_dynamic(priv->cpu_dev);
|
||||
kfree(priv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue