Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1374717

[PATCH] cpufreq: Abort cpufreq_update_current_freq() for cpufreq_suspended set

From "Rafael J. Wysocki" <rjw@rjwysocki.net>
Newsgroups linux.kernel
Subject [PATCH] cpufreq: Abort cpufreq_update_current_freq() for cpufreq_suspended set
Date 2016-04-10 06:10 +0200
Message-ID <rmeRb-7LR-1@gated-at.bofh.it> (permalink)
References <rl6VI-4qg-9@gated-at.bofh.it> <rme4N-78Q-3@gated-at.bofh.it> <rmexP-7mr-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Since governor operations are generally skipped if cpufreq_suspended
is set, cpufreq_start_governor() should do nothing in that case.

That function is called in the cpufreq_online() path, and may also
be called from cpufreq_offline() in some cases, which are invoked
by the nonboot CPUs disabing/enabling code during system suspend
to RAM and resume.  That happens when all devices have been
suspended, so if the cpufreq driver relies on things like I2C to
get the current frequency, it may not be ready to do that then.

To prevent problems from happening for this reason, make
cpufreq_update_current_freq(), which is the only function invoked
by cpufreq_start_governor() that doesn't check cpufreq_suspended
already, return 0 upfront if cpufreq_suspended is set.

Fixes: 3bbf8fe3ae08 (cpufreq: Always update current frequency before startig governor)
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/cpufreq/cpufreq.c |    3 +++
 1 file changed, 3 insertions(+)

Index: linux-pm/drivers/cpufreq/cpufreq.c
===================================================================
--- linux-pm.orig/drivers/cpufreq/cpufreq.c
+++ linux-pm/drivers/cpufreq/cpufreq.c
@@ -1565,6 +1565,9 @@ static unsigned int cpufreq_update_curre
 {
 	unsigned int new_freq;
 
+	if (cpufreq_suspended)
+		return 0;
+
 	new_freq = cpufreq_driver->get(policy->cpu);
 	if (!new_freq)
 		return 0;

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] cpufreq: Skip all governor-related actions for cpufreq_suspended set "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2016-04-07 03:30 +0200
  Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set Viresh Kumar <viresh.kumar@linaro.org> - 2016-04-07 06:30 +0200
    Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set "Rafael J. Wysocki" <rafael@kernel.org> - 2016-04-07 13:30 +0200
      Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set Viresh Kumar <viresh.kumar@linaro.org> - 2016-04-07 13:40 +0200
        Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set "Rafael J. Wysocki" <rafael@kernel.org> - 2016-04-07 13:50 +0200
          Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set Viresh Kumar <viresh.kumar@linaro.org> - 2016-04-07 14:10 +0200
            Re: [PATCH] cpufreq: Skip all governor-related actions for cpufreq_suspended set "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2016-04-08 00:10 +0200
              Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set Viresh Kumar <viresh.kumar@linaro.org> - 2016-04-08 07:50 +0200
                Re: [PATCH] cpufreq: Skip all governor-related actions for cpufreq_suspended set "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2016-04-09 00:00 +0200
  Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set Viresh Kumar <viresh.kumar@linaro.org> - 2016-04-08 07:50 +0200
    Re: [PATCH] cpufreq: Skip all governor-related actions for cpufreq_suspended set "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2016-04-09 00:00 +0200
      Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set Viresh Kumar <viresh.kumar@linaro.org> - 2016-04-10 05:20 +0200
        Re: [PATCH] cpufreq: Skip all governor-related actions for  cpufreq_suspended set "Rafael J. Wysocki" <rafael@kernel.org> - 2016-04-10 05:50 +0200
          [PATCH] cpufreq: Abort cpufreq_update_current_freq() for cpufreq_suspended set "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2016-04-10 06:10 +0200
            Re: [PATCH] cpufreq: Abort cpufreq_update_current_freq() for  cpufreq_suspended set Viresh Kumar <viresh.kumar@linaro.org> - 2016-04-10 06:20 +0200

csiph-web