Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pm-7.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull power management fixes from Rafael Wysocki:
"These fix two intel_pstate driver issues causing it to crash on sysfs
attribute accesses when some CPUs in the system are offline, finalize
changes related to turning pm_runtime_put() into a void function, and
update Daniel Lezcano's contact information:

- Fix two issues in the intel_pstate driver causing it to crash when
its sysfs interface is used on a system with some offline CPUs
(David Arcari, Srinivas Pandruvada)

- Update the last user of the pm_runtime_put() return value to
discard it and turn pm_runtime_put() into a void function (Rafael
Wysocki)

- Update Daniel Lezcano's contact information in MAINTAINERS and
.mailmap (Daniel Lezcano)"

* tag 'pm-7.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
MAINTAINERS: Update contact with the kernel.org address
cpufreq: intel_pstate: Fix crash during turbo disable
cpufreq: intel_pstate: Fix NULL pointer dereference in update_cpu_qos_request()
PM: runtime: Change pm_runtime_put() return type to void
pmdomain: imx: gpcv2: Discard pm_runtime_put() return value

+23 -27
+4
.mailmap
··· 210 210 Daniel Borkmann <daniel@iogearbox.net> <dborkmann@redhat.com> 211 211 Daniel Borkmann <daniel@iogearbox.net> <dborkman@redhat.com> 212 212 Daniel Borkmann <daniel@iogearbox.net> <dxchgb@gmail.com> 213 + Daniel Lezcano <daniel.lezcano@kernel.org> <daniel.lezcano@linaro.org> 214 + Daniel Lezcano <daniel.lezcano@kernel.org> <daniel.lezcano@free.fr> 215 + Daniel Lezcano <daniel.lezcano@kernel.org> <daniel.lezcano@linexp.org> 216 + Daniel Lezcano <daniel.lezcano@kernel.org> <dlezcano@fr.ibm.com> 213 217 Daniel Thompson <danielt@kernel.org> <daniel.thompson@linaro.org> 214 218 Danilo Krummrich <dakr@kernel.org> <dakr@redhat.com> 215 219 David Brownell <david-b@pacbell.net>
+6 -6
MAINTAINERS
··· 6278 6278 F: include/linux/clk.h 6279 6279 6280 6280 CLOCKSOURCE, CLOCKEVENT DRIVERS 6281 - M: Daniel Lezcano <daniel.lezcano@linaro.org> 6281 + M: Daniel Lezcano <daniel.lezcano@kernel.org> 6282 6282 M: Thomas Gleixner <tglx@kernel.org> 6283 6283 L: linux-kernel@vger.kernel.org 6284 6284 S: Supported ··· 6667 6667 6668 6668 CPU IDLE TIME MANAGEMENT FRAMEWORK 6669 6669 M: "Rafael J. Wysocki" <rafael@kernel.org> 6670 - M: Daniel Lezcano <daniel.lezcano@linaro.org> 6670 + M: Daniel Lezcano <daniel.lezcano@kernel.org> 6671 6671 R: Christian Loehle <christian.loehle@arm.com> 6672 6672 L: linux-pm@vger.kernel.org 6673 6673 S: Maintained ··· 6697 6697 6698 6698 CPUIDLE DRIVER - ARM BIG LITTLE 6699 6699 M: Lorenzo Pieralisi <lpieralisi@kernel.org> 6700 - M: Daniel Lezcano <daniel.lezcano@linaro.org> 6700 + M: Daniel Lezcano <daniel.lezcano@kernel.org> 6701 6701 L: linux-pm@vger.kernel.org 6702 6702 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 6703 6703 S: Maintained ··· 6705 6705 F: drivers/cpuidle/cpuidle-big_little.c 6706 6706 6707 6707 CPUIDLE DRIVER - ARM EXYNOS 6708 - M: Daniel Lezcano <daniel.lezcano@linaro.org> 6708 + M: Daniel Lezcano <daniel.lezcano@kernel.org> 6709 6709 M: Kukjin Kim <kgene@kernel.org> 6710 6710 R: Krzysztof Kozlowski <krzk@kernel.org> 6711 6711 L: linux-pm@vger.kernel.org ··· 26215 26215 26216 26216 THERMAL 26217 26217 M: Rafael J. Wysocki <rafael@kernel.org> 26218 - M: Daniel Lezcano <daniel.lezcano@linaro.org> 26218 + M: Daniel Lezcano <daniel.lezcano@kernel.org> 26219 26219 R: Zhang Rui <rui.zhang@intel.com> 26220 26220 R: Lukasz Luba <lukasz.luba@arm.com> 26221 26221 L: linux-pm@vger.kernel.org ··· 26245 26245 26246 26246 THERMAL/CPU_COOLING 26247 26247 M: Amit Daniel Kachhap <amit.kachhap@gmail.com> 26248 - M: Daniel Lezcano <daniel.lezcano@linaro.org> 26248 + M: Daniel Lezcano <daniel.lezcano@kernel.org> 26249 26249 M: Viresh Kumar <viresh.kumar@linaro.org> 26250 26250 R: Lukasz Luba <lukasz.luba@arm.com> 26251 26251 L: linux-pm@vger.kernel.org
+8 -6
drivers/cpufreq/intel_pstate.c
··· 1476 1476 refresh_frequency_limits(policy); 1477 1477 } 1478 1478 1479 - static bool intel_pstate_update_max_freq(struct cpudata *cpudata) 1479 + static bool intel_pstate_update_max_freq(int cpu) 1480 1480 { 1481 - struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpudata->cpu); 1481 + struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpu); 1482 1482 if (!policy) 1483 1483 return false; 1484 1484 1485 - __intel_pstate_update_max_freq(policy, cpudata); 1485 + __intel_pstate_update_max_freq(policy, all_cpu_data[cpu]); 1486 1486 1487 1487 return true; 1488 1488 } ··· 1501 1501 int cpu; 1502 1502 1503 1503 for_each_possible_cpu(cpu) 1504 - intel_pstate_update_max_freq(all_cpu_data[cpu]); 1504 + intel_pstate_update_max_freq(cpu); 1505 1505 1506 1506 mutex_lock(&hybrid_capacity_lock); 1507 1507 ··· 1647 1647 static void update_cpu_qos_request(int cpu, enum freq_qos_req_type type) 1648 1648 { 1649 1649 struct cpudata *cpudata = all_cpu_data[cpu]; 1650 - unsigned int freq = cpudata->pstate.turbo_freq; 1651 1650 struct freq_qos_request *req; 1651 + unsigned int freq; 1652 1652 1653 1653 struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpu); 1654 1654 if (!policy) ··· 1660 1660 1661 1661 if (hwp_active) 1662 1662 intel_pstate_get_hwp_cap(cpudata); 1663 + 1664 + freq = cpudata->pstate.turbo_freq; 1663 1665 1664 1666 if (type == FREQ_QOS_MIN) { 1665 1667 freq = DIV_ROUND_UP(freq * global.min_perf_pct, 100); ··· 1910 1908 struct cpudata *cpudata = 1911 1909 container_of(to_delayed_work(work), struct cpudata, hwp_notify_work); 1912 1910 1913 - if (intel_pstate_update_max_freq(cpudata)) { 1911 + if (intel_pstate_update_max_freq(cpudata->cpu)) { 1914 1912 /* 1915 1913 * The driver will not be unregistered while this function is 1916 1914 * running, so update the capacity without acquiring the driver
+3 -1
drivers/pmdomain/imx/gpcv2.c
··· 1416 1416 1417 1417 static int imx_pgc_domain_resume(struct device *dev) 1418 1418 { 1419 - return pm_runtime_put(dev); 1419 + pm_runtime_put(dev); 1420 + 1421 + return 0; 1420 1422 } 1421 1423 #endif 1422 1424
+2 -14
include/linux/pm_runtime.h
··· 545 545 * 546 546 * Decrement the runtime PM usage counter of @dev and if it turns out to be 547 547 * equal to 0, queue up a work item for @dev like in pm_request_idle(). 548 - * 549 - * Return: 550 - * * 1: Success. Usage counter dropped to zero, but device was already suspended. 551 - * * 0: Success. 552 - * * -EINVAL: Runtime PM error. 553 - * * -EACCES: Runtime PM disabled. 554 - * * -EAGAIN: Runtime PM usage counter became non-zero or Runtime PM status 555 - * change ongoing. 556 - * * -EBUSY: Runtime PM child_count non-zero. 557 - * * -EPERM: Device PM QoS resume latency 0. 558 - * * -EINPROGRESS: Suspend already in progress. 559 - * * -ENOSYS: CONFIG_PM not enabled. 560 548 */ 561 - static inline int pm_runtime_put(struct device *dev) 549 + static inline void pm_runtime_put(struct device *dev) 562 550 { 563 - return __pm_runtime_idle(dev, RPM_GET_PUT | RPM_ASYNC); 551 + __pm_runtime_idle(dev, RPM_GET_PUT | RPM_ASYNC); 564 552 } 565 553 566 554 /**