summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2020-10-20 10:10:35 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2020-10-20 19:40:54 +0200
commit330e3932a4811e1628d962e47e6892e1e20eb9a7 (patch)
treef59d9c42fe8c95ba81cb9cb7b55f8839a575d83d /drivers/base
parentPM: domains: enable domain idle state accounting (diff)
downloadlinux-330e3932a4811e1628d962e47e6892e1e20eb9a7.tar.xz
linux-330e3932a4811e1628d962e47e6892e1e20eb9a7.zip
PM: domains: Fix build error for genpd notifiers
The __raw_notifier_call_chain() was recently removed and replaced with raw_notifier_call_chain_robust(). Recent changes to genpd didn't take that into account, which causes a build error. Let's fix this by converting to the raw_notifier_call_chain_robust() in genpd. Reported-by: kernel test robot <lkp@intel.com> Reported-by: Lina Iyer <ilina@codeaurora.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/power/domain.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 859cdb207010..743268996336 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -413,15 +413,15 @@ static int _genpd_power_on(struct generic_pm_domain *genpd, bool timed)
unsigned int state_idx = genpd->state_idx;
ktime_t time_start;
s64 elapsed_ns;
- int ret, nr_calls = 0;
+ int ret;
/* Notify consumers that we are about to power on. */
- ret = __raw_notifier_call_chain(&genpd->power_notifiers,
- GENPD_NOTIFY_PRE_ON, NULL, -1,
- &nr_calls);
+ ret = raw_notifier_call_chain_robust(&genpd->power_notifiers,
+ GENPD_NOTIFY_PRE_ON,
+ GENPD_NOTIFY_OFF, NULL);
ret = notifier_to_errno(ret);
if (ret)
- goto err;
+ return ret;
if (!genpd->power_on)
goto out;
@@ -462,15 +462,15 @@ static int _genpd_power_off(struct generic_pm_domain *genpd, bool timed)
unsigned int state_idx = genpd->state_idx;
ktime_t time_start;
s64 elapsed_ns;
- int ret, nr_calls = 0;
+ int ret;
/* Notify consumers that we are about to power off. */
- ret = __raw_notifier_call_chain(&genpd->power_notifiers,
- GENPD_NOTIFY_PRE_OFF, NULL, -1,
- &nr_calls);
+ ret = raw_notifier_call_chain_robust(&genpd->power_notifiers,
+ GENPD_NOTIFY_PRE_OFF,
+ GENPD_NOTIFY_ON, NULL);
ret = notifier_to_errno(ret);
if (ret)
- goto busy;
+ return ret;
if (!genpd->power_off)
goto out;
@@ -502,10 +502,7 @@ out:
NULL);
return 0;
busy:
- if (nr_calls)
- __raw_notifier_call_chain(&genpd->power_notifiers,
- GENPD_NOTIFY_ON, NULL, nr_calls - 1,
- NULL);
+ raw_notifier_call_chain(&genpd->power_notifiers, GENPD_NOTIFY_ON, NULL);
return ret;
}