Thread (4 messages) 4 messages, 3 authors, 2024-12-14

Re: [PATCH] watchdog: aspeed: replace mdelay with msleep

From: Guenter Roeck <linux@roeck-us.net>
Date: 2024-12-14 21:46:39
Also in: linux-arm-kernel, linux-watchdog, lkml

On 12/14/24 13:21, David Laight wrote:
From: Guenter Roeck
quoted
Sent: 12 December 2024 13:56
To: Phil Eichinger <redacted>; wim@linux-watchdog.org; joel@jms.id.au;
andrew@codeconstruct.com.au; linux-watchdog@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
linux-aspeed@lists.ozlabs.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH] watchdog: aspeed: replace mdelay with msleep

On 12/12/24 03:30, Phil Eichinger wrote:
quoted
Since it is not called in an atomic context the mdelay function
can be replaced with msleep to avoid busy wait.

Signed-off-by: Phil Eichinger <redacted>
---
   drivers/watchdog/aspeed_wdt.c | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c
index b4773a6aaf8c..98ef341408f7 100644
--- a/drivers/watchdog/aspeed_wdt.c
+++ b/drivers/watchdog/aspeed_wdt.c
@@ -208,7 +208,7 @@ static int aspeed_wdt_restart(struct watchdog_device *wdd,
   	wdt->ctrl &= ~WDT_CTRL_BOOT_SECONDARY;
   	aspeed_wdt_enable(wdt, 128 * WDT_RATE_1MHZ / 1000);

-	mdelay(1000);
+	msleep(1000);

   	return 0;
   }
This is a _restart_ handler. The only purpose of the delay is to wait
for the reset to trigger. It is not supposed to sleep.
With the recent scheduler changes isn't the code likely to get
pre-empted?
Which (effectively) converts is to a sleep?
This code is called from do_kernel_restart(), which in turn is called from
machine_restart(). I'd think that the kernel has a severe problem if it
decides to preempt that function.

Guenter

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help