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

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

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

diff --git a/drivers/power/reset/gpio-poweroff.c 
b/drivers/power/reset/gpio-poweroff.c
index 6273ad3b411d..bbe55cfa87d0 100644
--- a/drivers/power/reset/gpio-poweroff.c
+++ b/drivers/power/reset/gpio-poweroff.c
@@ -33,16 +33,16 @@ static void gpio_poweroff_do_poweroff(void)
 
        /* drive it active, also inactive->active edge */
        gpiod_direction_output(reset_gpio, 1);
-       mdelay(100);
+       msleep(100);
        /* drive inactive, also active->inactive edge */
        gpiod_set_value(reset_gpio, 0);
-       mdelay(100);
+       msleep(100);
 
        /* drive it active, also inactive->active edge */
        gpiod_set_value(reset_gpio, 1);
 
        /* give it some time */
-       mdelay(timeout);
+       msleep(timeout);
 
        WARN_ON(1);
 }
-- 
2.17.0

Reply via email to