Commit 54c1a4f3 authored by Douglas Anderson's avatar Douglas Anderson Committed by Khalid Elmously

kernel/cpu_pm: Fix uninitted local in cpu_pm

BugLink: https://bugs.launchpad.net/bugs/1884564

commit b5945214 upstream.

cpu_pm_notify() is basically a wrapper of notifier_call_chain().
notifier_call_chain() doesn't initialize *nr_calls to 0 before it
starts incrementing it--presumably it's up to the callers to do this.

Unfortunately the callers of cpu_pm_notify() don't init *nr_calls.
This potentially means you could get too many or two few calls to
CPU_PM_ENTER_FAILED or CPU_CLUSTER_PM_ENTER_FAILED depending on the
luck of the stack.

Let's fix this.

Fixes: ab10023e ("cpu_pm: Add cpu power management notifiers")
Cc: stable@vger.kernel.org
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20200504104917.v6.3.I2d44fc0053d019f239527a4e5829416714b7e299@changeidSigned-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
parent afe42832
...@@ -97,7 +97,7 @@ EXPORT_SYMBOL_GPL(cpu_pm_unregister_notifier); ...@@ -97,7 +97,7 @@ EXPORT_SYMBOL_GPL(cpu_pm_unregister_notifier);
*/ */
int cpu_pm_enter(void) int cpu_pm_enter(void)
{ {
int nr_calls; int nr_calls = 0;
int ret = 0; int ret = 0;
read_lock(&cpu_pm_notifier_lock); read_lock(&cpu_pm_notifier_lock);
...@@ -156,7 +156,7 @@ EXPORT_SYMBOL_GPL(cpu_pm_exit); ...@@ -156,7 +156,7 @@ EXPORT_SYMBOL_GPL(cpu_pm_exit);
*/ */
int cpu_cluster_pm_enter(void) int cpu_cluster_pm_enter(void)
{ {
int nr_calls; int nr_calls = 0;
int ret = 0; int ret = 0;
read_lock(&cpu_pm_notifier_lock); read_lock(&cpu_pm_notifier_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment