Re: [PATCH] base: power: domain: Replace mdelay with msleep
From: Ulf Hansson <hidden>
Date: 2018-02-12 12:40:52
Also in:
lkml
On 12 February 2018 at 11:38, Lucas Stach [off-list ref] wrote:
Am Freitag, den 09.02.2018, 14:58 +0100 schrieb Ulf Hansson:quoted
On 26 January 2018 at 09:38, Jia-Ju Bai [off-list ref] wrote:quoted
After checking all possible call chains to genpd_dev_pm_detach() and genpd_dev_pm_attach() here, my tool finds that these functions are never called in atomic context, namely never in an interrupt handler or holding a spinlock. Thus mdelay can be replaced with msleep to avoid busy wait. This is found by a static analysis tool named DCNS written by myself. Signed-off-by: Jia-Ju Bai <redacted> --- drivers/base/power/domain.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/drivers/base/power/domain.cb/drivers/base/power/domain.c index 0c80bea..f84ac72 100644--- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c@@ -2144,7 +2144,7 @@ static void genpd_dev_pm_detach(struct device*dev, bool power_off) if (ret != -EAGAIN) break; - mdelay(i); + msleep(i);This looks like a nice improvement, however moving to msleep() makes the call to cond_resched() below a bit superfluous. Perhaps remove that as well.At least for small values of i, msleep also has a high chance to overshoot the desired sleep by a lot. It would be better to convert them to usleep_range with an acceptable slack.
Ack! [...] Kind regards Uffe