syscon_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/syscon-poweroff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/power/reset/syscon-poweroff.c b/drivers/power/reset/syscon-poweroff.c index f9f1cb54fbf9..b8b154606dbe 100644 --- a/drivers/power/reset/syscon-poweroff.c +++ b/drivers/power/reset/syscon-poweroff.c @@ -36,7 +36,7 @@ static void syscon_poweroff(void) /* Issue the poweroff */ regmap_update_bits(map, offset, mask, value); - mdelay(1000); + msleep(1000); pr_emerg("Unable to poweroff system\n"); } -- 2.17.0

