2018-07-30 13:49:55

by Jia-Ju Bai

[permalink] [raw]
Subject: [PATCH] power: reset: piix4-poweroff: Replace mdelay() with msleep() and usleep_range() in piix4_poweroff()

piix4_poweroff() is never called in atomic context.
It calls mdelay() to busily wait, which is not necessary.
mdelay() can be replaced with msleep() and usleep_range().

This is found by a static analysis tool named DCNS written by myself.

Signed-off-by: Jia-Ju Bai <[email protected]>
---
drivers/power/reset/piix4-poweroff.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/power/reset/piix4-poweroff.c b/drivers/power/reset/piix4-poweroff.c
index 20ce3ff5e039..5d4c72992d2c 100644
--- a/drivers/power/reset/piix4-poweroff.c
+++ b/drivers/power/reset/piix4-poweroff.c
@@ -47,7 +47,7 @@ static void piix4_poweroff(void)
io_offset + PIIX4_FUNC3IO_PMCNTRL);

/* If the special cycle occurs too soon this doesn't work... */
- mdelay(10);
+ usleep_range(10000, 11000);

/*
* The PIIX4 will enter the suspend state only after seeing a special
@@ -59,7 +59,7 @@ static void piix4_poweroff(void)
PIIX4_SUSPEND_MAGIC);

/* Give the system some time to power down, then error */
- mdelay(1000);
+ msleep(1000);
pr_emerg("Unable to poweroff system\n");
}

--
2.17.0



2018-08-29 22:46:46

by Sebastian Reichel

[permalink] [raw]
Subject: Re: [PATCH] power: reset: piix4-poweroff: Replace mdelay() with msleep() and usleep_range() in piix4_poweroff()

Hi,

On Mon, Jul 30, 2018 at 09:48:38PM +0800, Jia-Ju Bai wrote:
> piix4_poweroff() is never called in atomic context.
> It calls mdelay() to busily wait, which is not necessary.
> mdelay() can be replaced with msleep() and usleep_range().
>
> This is found by a static analysis tool named DCNS written by myself.
>
> Signed-off-by: Jia-Ju Bai <[email protected]>
> ---

This is a shutdown driver, so busy waiting is ok.

-- Sebastian

> drivers/power/reset/piix4-poweroff.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/power/reset/piix4-poweroff.c b/drivers/power/reset/piix4-poweroff.c
> index 20ce3ff5e039..5d4c72992d2c 100644
> --- a/drivers/power/reset/piix4-poweroff.c
> +++ b/drivers/power/reset/piix4-poweroff.c
> @@ -47,7 +47,7 @@ static void piix4_poweroff(void)
> io_offset + PIIX4_FUNC3IO_PMCNTRL);
>
> /* If the special cycle occurs too soon this doesn't work... */
> - mdelay(10);
> + usleep_range(10000, 11000);
>
> /*
> * The PIIX4 will enter the suspend state only after seeing a special
> @@ -59,7 +59,7 @@ static void piix4_poweroff(void)
> PIIX4_SUSPEND_MAGIC);
>
> /* Give the system some time to power down, then error */
> - mdelay(1000);
> + msleep(1000);
> pr_emerg("Unable to poweroff system\n");
> }
>
> --
> 2.17.0
>


Attachments:
(No filename) (1.34 kB)
signature.asc (849.00 B)
Download all attachments