Skip to content

Commit c513091

Browse files
committed
Merge tag 'pm-5.9-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fixes from Rafael Wysocki: "These fix one more issue related to the recent RCU-lockdep changes, a typo in documentation and add a missing return statement to intel_pstate. Specifics: - Fix up RCU usage for cpuidle on the ARM imx6q platform (Ulf Hansson) - Fix typo in the PM documentation (Yoann Congal) - Add return statement that is missing after recent changes in the intel_pstate driver (Zhang Rui)" * tag 'pm-5.9-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ARM: imx6q: Fixup RCU usage for cpuidle Documentation: PM: Fix a reStructuredText syntax error cpufreq: intel_pstate: Fix missing return statement
2 parents cc8ad8f + 7bbe8f2 commit c513091

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

Documentation/admin-guide/pm/cpuidle.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ which of the two parameters is added to the kernel command line. In the
690690
instruction of the CPUs (which, as a rule, suspends the execution of the program
691691
and causes the hardware to attempt to enter the shallowest available idle state)
692692
for this purpose, and if ``idle=poll`` is used, idle CPUs will execute a
693-
more or less ``lightweight'' sequence of instructions in a tight loop. [Note
693+
more or less "lightweight" sequence of instructions in a tight loop. [Note
694694
that using ``idle=poll`` is somewhat drastic in many cases, as preventing idle
695695
CPUs from saving almost any energy at all may not be the only effect of it.
696696
For example, on Intel hardware it effectively prevents CPUs from using

arch/arm/mach-imx/cpuidle-imx6q.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ static int imx6q_enter_wait(struct cpuidle_device *dev,
2424
imx6_set_lpm(WAIT_UNCLOCKED);
2525
raw_spin_unlock(&cpuidle_lock);
2626

27+
rcu_idle_enter();
2728
cpu_do_idle();
29+
rcu_idle_exit();
2830

2931
raw_spin_lock(&cpuidle_lock);
3032
if (num_idle_cpus-- == num_online_cpus())
@@ -44,7 +46,7 @@ static struct cpuidle_driver imx6q_cpuidle_driver = {
4446
{
4547
.exit_latency = 50,
4648
.target_residency = 75,
47-
.flags = CPUIDLE_FLAG_TIMER_STOP,
49+
.flags = CPUIDLE_FLAG_TIMER_STOP | CPUIDLE_FLAG_RCU_IDLE,
4850
.enter = imx6q_enter_wait,
4951
.name = "WAIT",
5052
.desc = "Clock off",

drivers/cpufreq/intel_pstate.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2781,6 +2781,7 @@ static int intel_pstate_update_status(const char *buf, size_t size)
27812781

27822782
cpufreq_unregister_driver(intel_pstate_driver);
27832783
intel_pstate_driver_cleanup();
2784+
return 0;
27842785
}
27852786

27862787
if (size == 6 && !strncmp(buf, "active", size)) {

0 commit comments

Comments
 (0)