From: Greg Kroah-Hartman Date: Fri, 3 Oct 2014 21:08:22 +0000 (-0700) Subject: 3.16-stable patches X-Git-Tag: v3.16.4~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2d7ef6881457f0045990121556014e5d926bec5a;p=thirdparty%2Fkernel%2Fstable-queue.git 3.16-stable patches added patches: cpufreq-update-cpufreq_suspended-after-stopping-governors.patch --- diff --git a/queue-3.16/cpufreq-update-cpufreq_suspended-after-stopping-governors.patch b/queue-3.16/cpufreq-update-cpufreq_suspended-after-stopping-governors.patch new file mode 100644 index 00000000000..e1f28688949 --- /dev/null +++ b/queue-3.16/cpufreq-update-cpufreq_suspended-after-stopping-governors.patch @@ -0,0 +1,52 @@ +From b1b12babe3b72cfb08b875245e5a5d7c2747c772 Mon Sep 17 00:00:00 2001 +From: Viresh Kumar +Date: Tue, 30 Sep 2014 09:33:17 +0530 +Subject: cpufreq: update 'cpufreq_suspended' after stopping governors + +From: Viresh Kumar + +commit b1b12babe3b72cfb08b875245e5a5d7c2747c772 upstream. + +Commit 8e30444e1530 ("cpufreq: fix cpufreq suspend/resume for intel_pstate") +introduced a bug where the governors wouldn't be stopped anymore for +->target{_index}() drivers during suspend. This happens because +'cpufreq_suspended' is updated before stopping the governors during suspend +and due to this __cpufreq_governor() would return early due to this check: + + /* Don't start any governor operations if we are entering suspend */ + if (cpufreq_suspended) + return 0; + +Fixes: 8e30444e1530 ("cpufreq: fix cpufreq suspend/resume for intel_pstate") +Signed-off-by: Viresh Kumar +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/cpufreq/cpufreq.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/cpufreq/cpufreq.c ++++ b/drivers/cpufreq/cpufreq.c +@@ -1666,10 +1666,8 @@ void cpufreq_suspend(void) + if (!cpufreq_driver) + return; + +- cpufreq_suspended = true; +- + if (!has_target()) +- return; ++ goto suspend; + + pr_debug("%s: Suspending Governors\n", __func__); + +@@ -1682,6 +1680,9 @@ void cpufreq_suspend(void) + pr_err("%s: Failed to suspend driver: %p\n", __func__, + policy); + } ++ ++suspend: ++ cpufreq_suspended = true; + } + + /** diff --git a/queue-3.16/series b/queue-3.16/series index 8a126ab130e..965a8f192bd 100644 --- a/queue-3.16/series +++ b/queue-3.16/series @@ -343,3 +343,4 @@ mmc-mmci-reverse-irq-handling-for-the-arm_variant.patch dmaengine-dw-introduce-dwc_dostart_first_queued-helper.patch dmaengine-dw-don-t-perform-dma-when-dmaengine_submit-is-called.patch partitions-aix.c-off-by-one-bug.patch +cpufreq-update-cpufreq_suspended-after-stopping-governors.patch