--- /dev/null
+From b1b12babe3b72cfb08b875245e5a5d7c2747c772 Mon Sep 17 00:00:00 2001
+From: Viresh Kumar <viresh.kumar@linaro.org>
+Date: Tue, 30 Sep 2014 09:33:17 +0530
+Subject: cpufreq: update 'cpufreq_suspended' after stopping governors
+
+From: Viresh Kumar <viresh.kumar@linaro.org>
+
+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 <viresh.kumar@linaro.org>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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;
+ }
+
+ /**